0

Wordpressを使用したDebian/ApacheVPS。このコードを使用して、すべての「www」URLをwww以外のアドレスにリダイレクトしようとしました。

# Redirect if www.site.net (case-insensitive) to site.net
RewriteCond %{HTTP_HOST} ^www\.site\.net [NC]
RewriteRule (.*) http://site.net/$1 [R=301,L,NC]

しかし、これは予期せずにwww.site.netをsite.net/site.netにリダイレクトし、www.site.net / examplesite.net/site.net/exampleにリダイレクトします—すべてのWPプラグインを非アクティブ化して再度チェックしましたが、効果はありませんでした。

以前のWPインストールパスは/var/www/site.net/でしたが、/ var /www/に移動しました。/etc/apache2/sites-available/site.netは次のようになります。

<VirtualHost *:80>
 ServerName site.net
 ServerAlias www.site.net
 DocumentRoot /var/www
 DirectoryIndex index.php
 <Directory /var/www/>
   Options FollowSymLinks
   AllowOverride All
 </Directory>
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

アドバイスしてください、それを正しく機能させるために私は何をする必要がありますか?

4

1 に答える 1

1

最善の選択肢は、リダイレクトを行うためにそこにある構成ファイルに新しい仮想ホストを作成することです。mod_rewrite を使用するよりもはるかに効率的で、何が起こっているのかを読むのも簡単です。

# to do the redirection
<VirtualHost *:80>
  ServerName www.site.net
  RedirectMatch permanent (.*) http://site.net$1
</VirtualHost>

# actual website
<VirtualHost *:80>
  ServerName site.net
  DocumentRoot /var/www/
  # .. etc .. 
</VirtualHost>
于 2013-03-09T13:33:11.493 に答える