Я использую следующий код для перенаправления всех запросов www на не-www адреса:
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]
Но я не могу понять причину этого. Кто-нибудь знает почему?