Mod-Rewrite
Mod_rewrite 規則強制對特定目錄使用特定域名
我想強制為我網站上的特定目錄使用不同的主機名/域名。
目前,在 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]