qod*_*nja 6 .htaccess redirect querystring
这个 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]
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,我无法逃脱 / 和 ? 网址的一部分。不知道为什么这不起作用......
我试过逃跑吗?
\\? \? [?]
Run Code Online (Sandbox Code Playgroud)
我试过逃避 /
\\/ \/ [/]
Run Code Online (Sandbox Code Playgroud)
这些似乎都不起作用......
帮助!
这会将所有请求从 myhost.com 重定向到 alt.myhost.com
RewriteCond %{HTTP_HOST} !^alt\.myhost\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://alt.myhost.com/$1 [L,R,NE]
Run Code Online (Sandbox Code Playgroud)
代码取自官方mod_rewrite 手册
如果由于某种原因未保留查询字符串,请将最后一行替换为
RewriteRule ^/?(.*) http://alt.myhost.com/$1 [L,R,NE,QSA]
Run Code Online (Sandbox Code Playgroud)
更新:这会将您的特定 URL 重定向到另一个域:
RewriteCond %{HTTP_HOST} =myhost.com [NC]
RewriteCond %{QUERY_STRING} ^(p=1&preview=true)
RewriteRule ^$ http://alt.myhost.com/?%1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
小智 7
由于查询字符串“p=([0-9]+)&preview=true”,我猜您需要重定向是因为在子域上有 wordpress 管理员,在主域上有网站。
因此,您无法预览草稿。
我想出了一个更广泛的解决方案,它也适用于添加参数的自定义帖子类型和插件:
RewriteCond %{HTTP_HOST} =myhost.com [NC]
RewriteCond %{QUERY_STRING} (preview=true)
RewriteRule ^$ http://alt.myhost.com/?%{QUERY_STRING} [R=301,L]
Run Code Online (Sandbox Code Playgroud)
在纯英语中,当在查询中找到“preview=true”时,重定向发生在 alt 子域上并保留完整查询。
| 归档时间: |
|
| 查看次数: |
45410 次 |
| 最近记录: |