首頁  >  問答  >  主體

無法實現此htaccess重定向

我有一個 maindomain.com,其中包含一個網站,這裡的一些頁面應該暫時重定向到我的子網域 tmp.maindomain.com。 所以我使用了這個重定向,它重定向到 tmp.maindomain.com 並且我得到一個無限循環重定向到 tmp.maindomain.com

redirect 301 /mypage.php https://tmp.maindomain.com/mypage.php

我的目標是,如果任何用戶嘗試訪問https://www.maindomain.com/mypage.phphttps://maindomain.com/mypage.php他應該被重定向302 到https://tmp .maindomain.com/mypage.php

謝謝你們的幫忙。

P粉806834059P粉806834059221 天前1476

全部回覆(1)我來回復

  • P粉593649715

    P粉5936497152024-04-05 13:03:26

    如果子域和主域指向相同位置(或後者的子目錄),則會出現無限迴圈。

    在這種情況下,您將需要使用 mod_rewrite(而不是 mod_alias)並明確檢查請求的主機名稱。

    但您也使用了 301 永久重定向。您需要使用 302 來代替。 301由瀏覽器持久緩存,因此在測試之前需要確保清除所有緩存。

    在子網域的 .htaccess 檔案的頂部、任何現有的 mod_rewrite 指令之前嘗試以下操作。

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^(www\.)?maindomain\.com [NC]
    RewriteRule ^mypage\.php$ https://tmp.maindomain.com/rrreee [R,L]

    請注意,RewriteRule 模式(第一個參數)匹配的 URL 路徑不以斜線開頭(與 mod_alias Redirect 不同)指令)。

    $0 反向引用包含與整個 RewriteRule 模式 相符的 URL 路徑。 IE。本例中為 mypage.php。這只是節省了重複,因為您重新導向到目標處的相同 URL 路徑。

    這預設為 302 暫時重定向。

    回覆
    0
  • 取消回覆