我需要使用.htaccess向带有片段(也称为锚点)的URL发出重定向,但它会自动转义#。
目前我想要一个硬编码的片段,但是为了别人的缘故,如果你知道如何从URL中获取它也会很好。
理想情况下,我也应该能够使用QSA。
例如:
http://www.exameple.com/test?foo=bar
应该成为
1) http://www.example.com/?foo=bar#MYVALUE
或从网址中获取片段:
2) http://www.example.com/?foo=bar#test
我的(非工作)代码如下所示:
RewriteRule /test http://www.example.com/#MYVALE [R,QSA]
答案 0 :(得分:3)
我想我已经明白了......
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /test
RewriteRule ^test/?(.*)$ $1 [C]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1?%{QUERY_STRING}#MYVALUE [NE,L,R]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} /test
RewriteRule ^test/?(.*)$ $1 [C]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1?%{QUERY_STRING}#MYVALUE [NE,L,R]
对于HTTP和HTTPS再次执行此操作有点可怜 - 我会看看是否可以找到解决方法。