@SeoNk

Как обработать с помощью nginx URL с пробелами?

Сайт на VDS: CentOS, nginx, PHP.

На сайте есть такая ссылка:

http://www.site.ru/%D0%91%D1%80%D1%8...20%D0%9B%D0%B8

Мне на сервере нужно преобразовать этот адрес в следующий вид:

http://www.site.ru/index.php?title=%...20%D0%9B%D0%B8
или
http://www.site.ru/index.php?title=Брюс Ли

Для этого я прописал в nginx.conf следующее правило:
rewrite ^/([а-пр-яa-zA-Z0-9_- ]+)/$ /index.php?title=$1;

Но это правило не работает. Возможно из за того, что на сервере адрес автоматически декодируется и не может обработать пробел.

Я пробовал прописать правило по разному: экранировал пробел, записывал его как \%20 или как "плюс", или \s - ничего не выходит.

Подскажите, как научить nginx обрабатывать пробел?
Или как отключить в nginx автоматическое декодирование (я могу декодировать строку средствами PHP).
Или может быть можно как то на стороне nginx перед реврайтом заменить все пробелы на, допустим, "плюс", а потом я в PHP его обратно преобразую.

Спасибо!
  • Вопрос задан
  • 484 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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