|
| Дата |
|
USD/RUB | 93.7196 | BTC/USD | 63600.8906 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
26.08.2017, 11:18
|
#1
|
Senior Member
Регистрация: 01.10.2010
Адрес: https://bankle.ru/
Сообщений: 1,140
Бабло: $306120
|
Nginx не работает редирект
Нужно сделать редирект с /route%2Fhta%2Futp/ на /route/hta/utp/ , добавил такое правило
Код:
rewrite ^/route%2F([a-zA-Z]*)%2F([a-zA-Z]*)/$ /route/$1/$2/ permanent;
но оно не работает. Что не так?
Этот адрес /route%2Fhta%2Futp/ я получил в google webmaster, на него ругается, пишет что 404
|
|
|
26.08.2017, 11:48
|
#2
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,859
Бабло: $1861005
|
так, я проснулся ))
а зачем вообще редиректить %2F куда-то, оно само исправит
в пхп тоже автоматом будет /
Последний раз редактировалось веломан; 26.08.2017 в 12:03.
|
|
|
26.08.2017, 11:55
|
#3
|
Senior Member
Регистрация: 15.11.2015
Сообщений: 216
Бабло: $29410
|
Написал бы что конкретно происходит. Логи смотрел? nginx вообще проглатывает конфиг с этим правилом? Где директива rewrite, в server или в location? Кусок конфига бы показал и логи, было бы понятнее.
Цитата:
Сообщение от веломан
наверное всё-таки надо так:
rewrite ^/route/(hta)/(utp)/$ /route/$1/$2/ permanent;
всмысле без %2F
|
Тогда уж так:
rewrite ^/route/hta/utp/$ /route/hta/utp/ permanent;
Только смысл-то в чем?
|
|
|
26.08.2017, 15:25
|
#4
|
Senior Member
Регистрация: 01.10.2010
Адрес: https://bankle.ru/
Сообщений: 1,140
Бабло: $306120
ТС -->
|
ТС
у меня вот такая вот херня:
а валидные адреса вот так /route/hta/utp/
|
|
|
26.08.2017, 16:36
|
#5
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,859
Бабло: $1861005
|
ну так этож логи
правь при записи в лог через urldecode()
|
|
|
26.08.2017, 18:07
|
#6
|
Senior Member
Регистрация: 01.10.2010
Адрес: https://bankle.ru/
Сообщений: 1,140
Бабло: $306120
ТС -->
|
ТС
какие логи? гугл стучится по этим адресам... мне нужно сделать редирект
|
|
|
26.08.2017, 18:55
|
#7
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,859
Бабло: $1861005
|
это логи с веб-панели, насколько я вижу
ну добавь в server{
rewrite ^/route\%2[fF](\w+)\%2[fF](\w+)/?$ /route/$1/$2/ permanent;
}
только вот с ^$ непоняточка, может без них надо
Последний раз редактировалось веломан; 26.08.2017 в 19:05.
|
|
|
26.08.2017, 20:33
|
#8
|
Senior Member
Регистрация: 01.10.2010
Адрес: https://bankle.ru/
Сообщений: 1,140
Бабло: $306120
ТС -->
|
ТС
веломан, не помогло, не делает редирект, экранирование % не работает, я пробовал раньше
|
|
|
26.08.2017, 23:22
|
#9
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,859
Бабло: $1861005
|
ну печалько, он никак не хочет, и так не хочет:
location ~ ^/route\%2f(\w+) {
return 301 /route$1;
}
и без \ не хочет, и в if не хочет
гугл говорит, там всё плохо
|
|
|
26.08.2017, 23:59
|
#10
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,859
Бабло: $1861005
|
жаркая дискуссия весьма недвусмысленно утверждает:
Цитата:
Третий раз за день - разберитесь, откуда у вас такой обкуреный запрос появляется. Если он действительно такой приходит на сервер.
Проще вылечить наркомана, отправляющего такой непотребство, чем пытаться обколоть сервер.
|
Цитата:
On Saturday 23 February 2013 13:57:29 Alexander Moskalenko wrote:
> В location параметры не матчатся.
> location = /files/check.php {
> }
>
> а внутри уже разбирайтесь с параметрами
>
Если запрос приходит в таком виде, то это уже не параметры, а имя запрошенного
файла. Другое дело, что location ищется по уже раскодированному адресу, о чем в
документации написано.
Должно помочь:
location /files/check.php? {
rewrite \?(.*)$ /files/check.php?$1? last;
}
location = /files/check.php {
fastcgi_pass 127.0.0.1:9000;
[...]
}
|
|
|
|
|