Question

Je dois émettre une redirection, en utilisant .htaccess, à une URL avec un fragment (également connu sous le nom d'une ancre), mais il est échapper automatiquement le #.

En ce moment je veux un fragment codé en dur, mais pour le bien des autres si vous savez comment prendre de l'URL aussi ce serait bien.

Idéalement, je devrais être en mesure d'utiliser QSA ainsi.

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]
Était-ce utile?

La solution

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

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top