.htaccess - 从 URL 中删除查询字符串(无重定向)
我的URL是http://www.example.com/eg1?redirect=xyz
,应该是http://www.example.com/eg1
重写规则为此编写的内容如下:
RewriteCond %{Query_STRING} ^redirect=xyz$
RewriteRule ^(.*)$ /examples/$1? [L]
重定向工作正常,但查询字符串仍然附加。当我将 [R]
标志放在末尾时,问号 (?
) 效果很好并删除查询字符串,但使用 [L]
标志它不工作。就我而言,我没有重定向,只是将其传递到另一个保存内容的目录。
My URL is http://www.example.com/eg1?redirect=xyz
, which should be http://www.example.com/eg1
The rewrite rule written for this is as follows:
RewriteCond %{Query_STRING} ^redirect=xyz$
RewriteRule ^(.*)$ /examples/$1? [L]
The redirection is working fine, but the query string remains appended. When i put [R]
flag the question mark (?
) at end works great and removes the query string, but with [L]
flag its not working. And in my case I do not have redirection, just passing it to another directory which holds the content.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
规则很好:
如果您希望它反映在地址栏上,您必须指定外部重定向。即带有
临时重定向
(R=302
) 或永久重定向
(R=301
) 的R
代码>)。与L
一起。默认情况下,R
会进行临时重定向。来自评论:
添加
L
以及 flsgR
。The rules are fine:
If you want it to reflect at the address bar you will have to specify an external redirect. i.e.
R
withTemporary Redirect
(R=302
) orPermanent Redirect
(R=301
). Along withL
. By defaultR
does a temporary redirect.From comments:
Add
L
along with flsgR
.