Ich verwende den folgenden Code, um alle WWW-Anfragen an Nicht-WWW-URLs weiterzuleiten:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Dies funktioniert hervorragend in einer .htaccess-Datei im Stammverzeichnis meiner Website.
Zum Beispiel
www.example.com -> example.com/
www.example.com/ -> example.com/
www.example.com/other_page -> example.com/other_page
Wenn ich jedoch denselben Code in meine VirtualHost-Konfiguration verschiebe, enthalten die neu geschriebenen URLs einen doppelten Schrägstrich.
www.example.com -> example.com//
www.example.com/ -> example.com//
www.example.com/other_page -> example.com//other_page
Ich habe es behoben, indem ich den Schrägstrich aus der Umschreiberegel entfernt habe:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
Aber ich kann den Grund dafür nicht verstehen. Weiß jemand warum?