Apache-2.4

使用 ServerAlias 重寫 Apache URL

  • March 2, 2018

我有一個在 CentOS 7 伺服器上執行的虛擬主機,它為 2 個 Prestashop 商店提供服務。

在這個 vhost conf 文件中,我有一個 ServerName 和一個 ServerAlias,每個都指向一個專用儲存。

最近我把兩個商店都搬到了HTTPS,但還有一個問題:我知道如何重寫URL以從HTTP重定向到HTTPS,但是我可以根據客戶端詢問的URL進行重定向嗎?

我知道如何用 2 個虛擬主機來做,但由於 conf 幾乎相同,我只想用一個文件來做。

範例:在同一個 Vhost conf 文件中重寫ANDhttp://store1.example.com到all。https://store1.example.com``http://store2.example.com``https://store2.example.com

您可以只使用 apache 設置的 HTTP_HOST 變數:

<VirtualHost *:80>
 ServerName store1.example.com
 ServerAlias store2.example.com
 RewriteEngine On
 RewriteRule ^/?(.*)$ https://%{HTTP_HOST}/$1 [R=301]
</VirtualHost>

您可以根據需要將它們放在一個或多個文件中,但最直接的方法是使用多個<VirtualHost>指令:

<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>

引用自:https://serverfault.com/questions/899547