Pregunta

Necesito una redirección, usando .htaccess, a una URL con un fragmento (también conocido como un ancla), pero se está escapando automáticamente el #.

En el momento en que quieren un fragmento codificado, pero por el bien de los demás, si usted sabe cómo tomarlo desde la URL también que sería bueno.

Lo ideal es que debería ser capaz de utilizar QSA también.

Por ejemplo:

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

debe convertirse

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

o tomar el fragmento de la url:

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

Mi código (no de trabajo) es el siguiente:

RewriteRule /test http://www.example.com/#MYVALE [R,QSA]
¿Fue útil?

Solución

Creo que tengo todo resuelto ...

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]

Es un poco pobre tener que hacerlo una vez para HTTP y HTTPS de nuevo por - Voy a ver si puedo encontrar una forma de evitar eso

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top