vermus
@vermus

Какие символы допустимы в $request_uri в nginx?

Есть следующий конфиг

nginx.org/en/docs/http/converting_rewrite_rules.html

server {
    listen       80;
    server_name  example.org;
    return       301 http://www.example.org$request_uri;
}

server {
    listen       80;
    server_name  www.example.org;
    ...
}


Проблема в том что переадресации с uri, содержащего скобки происходит на главную, то есть rewust_uri отбрасывается.

wiki/%D0%A2%D0%B0%D0%B9%D0%BC%D1%8B%D1%80%20(%D0%BF%D0%BE%D0%BB%D1%83%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B2)

в то время, как uri вида, переадресовываются спокойно.

wiki/%D0%9A%D0%B0%D0%B2%D0%BA%D0%B0%D0%B7%D1%81%D0%BA%D0%B8%D0%B9%20%D0%B7%D0%B0%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA

Согласно https://www.ietf.org/rfc/rfc1738.txt encode для скобок вроде не нужен.

Thus, only alphanumerics, the special characters "$-_.+!*'(),", and
reserved characters used for their reserved purposes may be used
unencoded within a URL.
  • Вопрос задан
  • 2467 просмотров
Решения вопроса 1
@Power
Я попробовал, у меня нормально редиректит со скобками:
HTTP/1.1 301 Moved Permanently
Server: nginx/1.6.2
...
Location: http://www.example.org/wiki/%D0%A2%D0%B0%D0%B9%D0%BC%D1%8B%D1%80%20(%D0%BF%D0%BE%D0%BB%D1%83%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B2)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы