Как добавить символ «_» в RewriteCond в .htaccess?

На данный момент есть такое правило:
RewriteEngine on
RewriteCond %{REQUEST_URI} \/([0-9a-z\&\=\.\[\]\{\}\%\-]+)$ [NC]
RewriteRule ^(.*) /hello.php?query=%1 [L]

Оно, как знатоки уже поняли, отправляет с /hsdfs на /hello.php?query=hsdfs

hsdfs - строка, которая может содержать символы 0-9, a-z, &, = и др...

К этим символам мне нужно добавить еще один символ "_". Но когда я преобразовываю вторую строку так:
RewriteCond %{REQUEST_URI} \/([0-9a-z\&\=\.\[\]\{\}\%\-\_]+)$ [NC]
или так
RewriteCond %{REQUEST_URI} \/([0-9a-z\&\=\.\[\]\{\}\%\-_]+)$ [NC]

Получаю 500 ошибку...

Как добиться желаемого результата?
  • Вопрос задан
  • 2363 просмотра
Решения вопроса 1
@Georgy1 Автор вопроса
Разрешилось вот так:

RewriteCond %{REQUEST_URI} \/([a-z0-9_[\]{}%&=-]+)$ [NC]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
t-alexashka
@t-alexashka
Сразу пишу legacy код
По мистическому для меня правилу, нижнее подчеркивание не может быть в начале или конце списка символов. попробуйте переместить его на 1 символ влево. Должно получиться.

upd0: а может я и гоню
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы