Korzystam z następującego kodu, aby kierować wszystkie żądania www na adresy URL inne niż www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Działa to świetnie w pliku .htaccess w katalogu głównym mojej witryny.
Na przykład
www.example.com -> example.com/
www.example.com/ -> example.com/
www.example.com/other_page -> example.com/other_page
Jeśli jednak przeniosę ten sam kod do mojej konfiguracji VirtualHost, przepisane adresy URL zawierają podwójny ukośnik.
www.example.com -> example.com//
www.example.com/ -> example.com//
www.example.com/other_page -> example.com//other_page
Naprawiłem to, usuwając ukośnik z reguły przepisywania:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
Ale nie mogę zrozumieć przyczyny tego. Czy ktoś wie dlaczego?