0

我需要使用 .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]
4

1 回答 1

2

我想我已经弄清楚了...

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 做一次有点糟糕 - 我会看看我是否能找到解决方法。

于 2008-12-16T17:35:20.650 回答