2008-12-16 11 views
0

Je dois émettre une redirection, en utilisant .htaccess, vers une URL avec un fragment (également connu sous le nom d'une ancre), mais il échappe automatiquement le #. En ce moment, je veux un fragment codé en dur, mais pour les autres, si vous savez comment le prendre à partir de l'URL, ce serait bien..htaccess rediriger avec le fragment

Idéalement, je devrais aussi pouvoir utiliser QSA.

Par exemple:

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

devrait devenir

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

ou de prendre le fragment de l'url:

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

Mon code (non-travail) ressemble à ceci:

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

Répondre

3

Je pense que je l'ai pensé à ...

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] 

Il est un peu pauvre avoir à le faire une fois pour HTTP et HTTPS à nouveau pour - Je vais voir si je peux trouver un moyen de contourner cela.

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

C'est proche - le # sort ok mais l'URL se termine par/# MYVALUE? Foo = bar – Greg

+0

Nope, qui sort avec? # MYVALUE & foo = bar - un peu différent mais toujours pas ce qui est nécessaire – Greg

Questions connexes