
Ich habe einen virtuellen Host auf einem CentOS 7-Server, der 2 Prestashop-Shops bedient.
In dieser virtuellen Host-Konfigurationsdatei habe ich einen Servernamen und einen Serveralias, die jeweils auf einen dedizierten Shop verweisen.
Ich habe vor Kurzem beide Shops auf HTTPS umgestellt, aber eine Frage bleibt: Ich weiß, wie ich die URL umschreiben muss, um von HTTP auf HTTPS umzuleiten, aber kann ich auf Grundlage der vom Client angeforderten URL umleiten?
Ich weiß, wie es mit 2 virtuellen Hosts geht, aber da die Konfiguration nahezu identisch ist, wollte ich es mit nur einer Datei machen.
Beispiel: Schreiben Sie http://store1.example.com
alles in https://store1.example.com
UND in dieselbe Vhost-Konfigurationsdatei um.http://store2.example.com
https://store2.example.com
Antwort1
Sie können einfach die von Apache festgelegte HTTP_HOST-Variable verwenden:
<VirtualHost *:80>
ServerName store1.example.com
ServerAlias store2.example.com
RewriteEngine On
RewriteRule ^/?(.*)$ https://%{HTTP_HOST}/$1 [R=301]
</VirtualHost>
Antwort2
Sie können sie nach Belieben in eine oder mehrere Dateien einfügen. Am einfachsten geht das jedoch mit mehreren <VirtualHost>
Anweisungen:
<VirtualHost *:80>
ServerName store1.example.com
Redirect permanent / https://store1.example.com
</VirtualHost>
<VirtualHost *:80>
ServerName store2.example.com
Redirect permanent / https://store2.example.com
</VirtualHost>
<VirtualHost *:443>
ServerName store1.example.com
ServerAlias store2.example.com
...
</VirtualHost>