Dot-Htaccess

.htaccess 重定向問題

  • September 30, 2016

這是我需要做的。

重定向sub1.domain1.co.uksub2.domain2.com

重定向sub2.domain2.comsub2.domain2.com/sub-folder

這些都有效,但這不起作用:

直接導航到sub1.domain1.co.uk/sub-folder不會重定向到sub2.domain2.com/sub-folder.

這是我的重定向:

RedirectMatch ^/$ http://sub2.domain2.com/sub-folder

RewriteCond %{HTTP_HOST} ^sub1.domain1.co.uk$ [NC]
RewriteRule (.*) sub2.domain2.com/$1 [R=301,L]

您有幾個潛在的問題可以解釋為什麼一個有效而一個無效…

  1. 您正在混合使用 mod_alias ( RedirectMatch) 和 mod_rewrite ( RewriteRule) 指令來進行外部重定向。不同的模組在請求期間的不同時間執行並獨立工作。這可能會導致混亂的衝突。如果您使用的是 mod_rewrite,那麼在整個過程中使用 mod_rewrite 會更安全。
  2. 您正在使用 WordPress。因此,您擁有路由請求的現有 mod_rewrite 指令。任何外部重定向都必須任何 WP 路由指令之前。

RewriteRule (.*) sub2.domain2.com/$1 [R=301,L]

您還缺少http://替換中的方案(即。),因此這將被視為相對和中斷。

因此,以下內容應位於文件頂部附近的任何現有 WordPress 指令之前.htaccess

# Redirect sub2.domain2.com/ to sub2.domain2.com/sub-folder
RewriteCond %{HTTP_HOST} =sub2.domain2.com [NC]
RewriteRule ^$ http://sub2.domain2.com/sub-folder [R=301,L]

# Redirect sub1.domain1.co.uk/<anything> to sub2.domain2.com/<anything>
RewriteCond %{HTTP_HOST} =sub1.domain1.co.uk [NC]
RewriteRule (.*) http://sub2.domain2.com/$1 [R=301,L]

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