#html #.htaccess #search #ascii #hashtag
#HTML #.htaccess #Поиск #ascii #хэштег
Вопрос:
Итак, суть в том, что у меня есть файл:
search.php
Когда я гото:
search.php?search=#HashTag
Поиск возвращает: #HashTag
Но когда я использую свой метод .htaccess:
/search/#HashTag
Ничего не возвращается. И я протестировал, поместив числовой знак позже в поиске, и он возвращается к этому моменту.
Это то, что у меня есть:
RewriteRule ^search/([^.] )$ search.php?search=$1 [NE,L]
Что я делаю не так ..?
Ответ №1:
Измените свои флаги на [NE,B,L]
.
http://httpd.apache.org/docs/current/rewrite/flags.html#flag_b
mod_rewrite отменяет удаление URL-адреса перед применением преобразований. Я не уверен, почему он что-то теряет после хэша (возможно, он повторно интерпретирует его как URL и отбрасывает фрагмент?). В любом случае [B] повторно экранирует URL-адрес перед его запуском через правило перезаписи.
Ответ №2:
Нормально ли заменить его на #
work?
(Ясность: в отличие от записи # в файле .htaccess)
Комментарии:
1. На самом деле это просто изменяет на косую черту
2. Только что перешел на сервер apache FreeBSD, и я заметил, что он не работает в этом дистрибутиве.