我正在使用以下代码将所有www请求定向到非www URL:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
这在我的网站根目录下的.htaccess文件中非常有效。
例如,
www.example.com-> example.com/
www.example.com/-> example.com/
www.example.com/other_page-> example.com/other_page
但是,如果我将相同的代码移到VirtualHost配置中,则重写的URL包含双斜杠。
www.example.com-> example.com//
www.example.com/-> example.com//
www.example.com/other_page-> example.com//other_page
我通过从重写规则中删除斜杠来修复它:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
但是我不明白原因。有人知道为什么吗?