15
我试图在目标包含片段标识符部分的情况下发出重定向。 我试图与这条规则:对包含散列标记的目标的Apache重写规则
RewriteRule ^/foo/bar/([^/]+)/(.*)$ /cgi/script#foobar::$1.$2 [R,L]
然而#
转化为%23
和Web应用程序不能正确地分析这个网址。我如何强制apache保持#
角色?发现
我试图在目标包含片段标识符部分的情况下发出重定向。 我试图与这条规则:对包含散列标记的目标的Apache重写规则
RewriteRule ^/foo/bar/([^/]+)/(.*)$ /cgi/script#foobar::$1.$2 [R,L]
然而#
转化为%23
和Web应用程序不能正确地分析这个网址。我如何强制apache保持#
角色?发现
解决方法:有不与mod_rewrite的逸出网址选项:
https://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_ne
添加[NE]标志解决了这个问题。
有没有办法*不追加查询字符串?使用这种方法,我得到'/ myUrl?123'重定向到'/ newUrl#hash?123'。我知道有'QSA'的标志,但我需要找到相反的。 – 2016-02-03 00:06:09
@SimonEast你在Apache 2.4上有'QSD'标志。或者在'RewriteRule'替换的末尾添加一个'?'。 – MrWhite 2016-09-19 08:56:31
太棒了,谢谢@ w3dk – 2016-09-20 01:47:33