Dot-Htaccess
如何將帶有查詢字元串的 URL 重定向到另一個主機?
這個 htaccess 片段應該重定向
myhost.com/?p=1&preview=true
到
alt.myhost.com/?p=1&preview=true
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^myhost.com$ [NC] RewriteRule ^/\?p=([0-9]+)&preview=true$ http://alt.myhost.com/?p=$1&preview=true [NC,R=301,L]
但由於某種原因,我無法逃脫 / 和 ? URL 的一部分。不知道為什麼這不起作用…
我試過逃跑?
\\? \? [?]
我試過逃避 /
\\/ \/ [/]
這些似乎都不起作用……
幫助!
這會將來自 myhost.com 的所有請求重定向到 alt.myhost.com
RewriteCond %{HTTP_HOST} !^alt\.myhost\.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/?(.*) http://alt.myhost.com/$1 [L,R,NE]
程式碼取自官方mod_rewrite 手冊
如果由於某種原因未保留查詢字元串,請將最後一行替換為
RewriteRule ^/?(.*) http://alt.myhost.com/$1 [L,R,NE,QSA]
**更新:**這會將您的特定 URL 重定向到另一個域:
RewriteCond %{HTTP_HOST} =myhost.com [NC] RewriteCond %{QUERY_STRING} ^(p=1&preview=true) RewriteRule ^$ http://alt.myhost.com/?%1 [R=301,L]