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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top