使用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.net , www.site.net/example 至 site.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>
请告知,我需要做些什么才能使其正常工作?
答案 0 :(得分: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>