2008-12-16 32 views
0

我需要使用.htaccess將URL重定向到帶有片段(也稱爲錨點)的URL,但它會自動轉義#。.htaccess使用片段重定向

目前我想要一個硬編碼的片段,但爲了其他人的緣故,如果你知道如何從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] 

回答

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做一次 - 我會看看我能找到一個解決方法。

1
 
RewriteRule /test http://www.example.com/#MYVALE [R,QSA,NE] 
+0

這已經很接近 - 在#出來確定,但URL最終爲/#myvalue的富=酒吧 – Greg 2008-12-16 16:30:31