Wie kann ich zwingen 'www' Sub-Domain w / Apache2 + Rails + Phusion Passagier?
-
19-09-2019 - |
Frage
wollen Meine Klienten 301 verwenden, leitet die ‚www‘ Sub-Domain auf ihren Websites zu erzwingen. So 'example.com/something' beschließt, 'www.example.com/somthing' etc.
Was ich versuche auf meine vhost zu tun, Datei hinzufügen ist einfach:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias www.*
DocumentRoot /data/apps/example.com/current/public
RailsBaseURI /
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>
Ich habe auch dafür gesorgt, dass mod Rewrite wurde aktiviert über:
sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload
Das Ergebnis meiner derzeitigen Bemühungen erscheint im Grunde erfolgreich zu sein. Apache neu gestartet und alles funktioniert wie erwartet mit Ausnahme der Rewrite ist nicht passiert. Also beide ‚www.example.com‘ und ‚example.com‘ zu lösen. Der Browser erhält nicht auf ‚www.example.com‘ umgeleitet, wenn es sein sollte. Irgendwelche Ideen? Ich habe versucht, die Konfiguration und dem Neustart Apache mehrmals neu zu laden, aber ich kann nicht die Rewrite-Regeln scheinen zum Laufen zu bringen. Bin ich sich an der falschen Stelle Einstellung von ihnen hier in den vhost anstelle einer .htaccess-Datei platzieren?
Jede Beratung wäre hier nützlich. Ich bin völlig verwirrt.
Lösung
Setzen Sie diese unter Ihrem Hauptvirtualhost Eintrag:
<VirtualHost *:80>
ServerName example.com
RedirectMatch permanent ^/(.*) http://www.example.com/$1
</VirtualHost>
Sie Hauptvirtualhost sollte einen Server www.example.com Eintrag und keine Aliase oder Umleitungen. Auch mod_rewrite ist nicht für diese Umleitung erforderlich ist.