перенаправление .htaccess с фрагментом
-
21-08-2019 - |
Вопрос
Мне нужно выполнить перенаправление, используя .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]
Решение
Я думаю, что я с этим разобрался...
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 - я посмотрю, смогу ли я найти способ обойти это.
Не связан с StackOverflow