Mod-Rewrite

Mod_rewrite 規則強制對特定目錄使用特定域名

  • June 15, 2015

我想強制為我網站上的特定目錄使用不同的主機名/域名。

目前,在 mainsite.com/directory 有一個包含多個網頁的目錄。對於僅駐留在該目錄中的頁面,我希望將使用者地址欄中的域名更改為 differentsite.com。理想情況下,這些頁面似乎位於 differentsite.com 的根級別。

我可以在我的 WordPress .htaccess 文件中添加哪些規則來完成此操作?

為您要為其執行此操作的每個目錄創建以下 3 行的塊。RewriteEngine on在指令之後執行此操作。在此範例中,www.example.com 是您希望用於目錄的域。

RewriteCond %{REQUEST_URI} ^/directory1(.*)
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule .* http://www.example.com%1 [L,R]

測試後,更改[L,R][L,R=301]表示永久重定向以獲得更好的 SEO 友好性。我沒有啟動它,因為它會使測試複雜化,因為它會導致瀏覽器記憶體重定向。

要使上述工作正常進行,您需要確保將伺服器配置為偵聽其他域,並且在訪問該域時,使用子文件夾(在本例中為 directory1)的完整路徑作為域的文件根目錄.

如果您不知道如何執行此操作並且不介意 URL 中有子目錄,則將另一個域配置為使用與主域相同的文件根目錄,然後使用以下規則:

RewriteCond %{REQUEST_URI} ^/directory1.*
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R]

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