Dot-Htaccess
.htaccess 重定向問題
這是我需要做的。
重定向
sub1.domain1.co.uk
到sub2.domain2.com
重定向
sub2.domain2.com
到sub2.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]
您有幾個潛在的問題可以解釋為什麼一個有效而一個無效…
- 您正在混合使用 mod_alias (
RedirectMatch
) 和 mod_rewrite (RewriteRule
) 指令來進行外部重定向。不同的模組在請求期間的不同時間執行並獨立工作。這可能會導致混亂的衝突。如果您使用的是 mod_rewrite,那麼在整個過程中使用 mod_rewrite 會更安全。- 您正在使用 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]