Apache-URL-Umschreiben mit ServerAlias

Apache-URL-Umschreiben mit ServerAlias

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.comalles in https://store1.example.comUND in dieselbe Vhost-Konfigurationsdatei um.http://store2.example.comhttps://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>

verwandte Informationen