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

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

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

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

我可以在 WordPress .htaccess 檔案中添加哪些規則來實現此目的?

答案1

為每個要執行此操作的目錄建立一個包含以下 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]

相關內容