Ich leite alle http://-Anfragen mithilfe einer Apache2-Host-Conf-Datei wie dieser auf https:// um.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
#more details here
</VirtualHost>
Dies funktioniert einwandfrei und leitet alle Anfragen an https:// weiter.
Jetzt möchte ich meine Nicht-WWW-Anfrage auf WWW umleiten (alsohttps://example.comZuhttps://www.example.com). Ich habe versucht, die folgenden Zeilen vor und nach dem obigen 443-Block einzufügen. Aber ohne Erfolg :(
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
</VirtualHost>
Irgendeine Idee, wie ich dies ohne .htaccess aktivieren kann?
Bitte helfen Sie.
Antwort1
Sie möchten die Umleitung zum bestehenden *:443
virtuellen Host hinzufügen. So etwas sollte funktionieren:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
Platzieren Sie das vor allen anderen RewriteRule
Abschnitten.
Antwort2
Was Sie haben, ist bereits richtig.
Und Sie müssen *:443
mit definieren NameVirtualHost
.
Verwenden Sie diese Konfiguration, in der # more details here
sich Ihr gesamtes SSL-Setup befindet, da Sie es bereits haben:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
# more details here
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
# more details here
</VirtualHost>
Sie benötigen die Details Ihres SSL-Zertifikats injede VirtualHost
Container, auch wenn sie gleich sind.
Bittenichtzusätzliche IPv4-Adressen verwenden – dieser Anwendungsfall erfordert keine Verwendung zusätzlicher IP-Adressen. HTTP/1.1 kann mehrere Domänen unter einer IP-Adresse verarbeiten, auch mit SSL.