Переадресация .htaccess с фрагментом - PullRequest
0 голосов
/ 16 декабря 2008

Мне нужно выполнить перенаправление, используя .htaccess, на URL-адрес с фрагментом (также известным как якорь), но он автоматически экранирует #.

В данный момент я хочу жестко запрограммированный фрагмент, но ради других, если вы знаете, как извлечь его из 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]

1 Ответ

3 голосов
/ 16 декабря 2008

Мне кажется, я понял это ...

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 - я посмотрю, смогу ли я найти способ обойти это.

...