0

带有 Wordpress 的 Debian/Apache VPS。我试图使用此代码将所有“www”网址重定向到非 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.netwww.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 回答