Domanda

Ho bisogno di emettere un redirect, usando .htaccess, a un URL con un frammento (noto anche come un'ancora), ma è in fuga automaticamente il #.

Al momento voglio un frammento hard-coded, ma per il bene degli altri se si sa come prenderlo dall'URL anche che sarebbe bene.

Idealmente dovrei essere in grado di utilizzare QSA pure.

Ad esempio:

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

dovrebbe diventare

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

o prendendo il frammento del URL:

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

Il mio codice (non funzionante) si presenta così:

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

Soluzione

Credo che li ho capito ...

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]

E 'un po' povero di dover farlo una volta per HTTP e di nuovo per HTTPS - Vedrò se riesco a trovare un modo per aggirare che

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top