代码之家  ›  专栏  ›  技术社区  ›  Greg

.htaccess使用片段重定向

  •  0
  • Greg  · 技术社区  · 16 年前

    我需要使用.htaccess对带有片段(也称为锚点)的URL发出重定向,但它会自动转义#。

    目前我想要一个硬编码的片段,但是为了其他人的利益,如果你知道如何从URL获取它,那就好了。

    理想情况下,我应该能够使用QSA以及。

    例如:

    http://www.exameple.com/test?foo=bar
    

    应该成为

    1) http://www.example.com/?foo=bar#MYVALUE
    

    或者从url获取片段:

    2) http://www.example.com/?foo=bar#test
    

    我的(非工作)代码如下所示:

    RewriteRule /test http://www.example.com/#MYVALE [R,QSA]
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   Greg    16 年前

    我想我已经弄明白了。。。

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