LINUX.ORG.RU
ФорумAdmin

Обработка nginx URL с пробелами

 ,


0

1

Сайт на 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 его обратно преобразую.

Спасибо!


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.