nginx в url 2 слэша то редирект на 404.php - Форум об интернет-маркетинге
Этот сайт существует на доходы от рекламы.
Пожалуйста, выключите AdBlock.
Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 18.03.2018, 09:41   #1
Все хорошо!
 
Аватар для baas
 
Регистрация: 17.09.2012
Адрес: Россия
Сообщений: 373
Репутация: 27712
Отправить сообщение для baas с помощью ICQ Send Message via Jabber to baas

По умолчанию nginx в url 2 слэша то редирект на 404.php

Здравствуйте.
Подскажите пожалуйста, как лучше редирект сделать.
Условие, если в url есть // ( два слэша) то редирект нужно сделать на страницу 404.php
Вот что сделал.
Код:
http {
merge_slashes on;
И дальше в вирутал хосте.
Код:
if ($request_uri ~ ^[^?]*//) {
return 404;
}
Но в данном случае редиректится как-то конско, не на фируменную страницу сайта.
Вот что выходит
Код:
Не удается получить доступ к сайту
Веб-страница по адресу https://test.site.local/decor/post//, возможно, временно недоступна или постоянно перемещена по новому адресу.
ERR_INVALID_RESPONSE
__________________
Настройка BSD систем.
Знание сила, незнание Рабочая сила!
baas вне форума   Ответить с цитированием

Реклама
Старый 18.03.2018, 14:26   #2
jkm
Профессор
 
Регистрация: 21.02.2014
Сообщений: 531
Репутация: 184568

По умолчанию Re: nginx в url 2 слэша то редирект на 404.php

Если нужно перенаправление на /404.php
Код:
if ($request_uri ~ ^[^?]*//) {
    rewrite ^ /404.php;
}
jkm вне форума   Ответить с цитированием
Старый 19.03.2018, 13:25   #3
baas
Все хорошо!
 
Аватар для baas
 
Регистрация: 17.09.2012
Адрес: Россия
Сообщений: 373
Репутация: 27712
Отправить сообщение для baas с помощью ICQ Send Message via Jabber to baas

ТопикСтартер Re: nginx в url 2 слэша то редирект на 404.php

Цитата:
Сообщение от jkm Посмотреть сообщение
Если нужно перенаправление на /404.php
Код:
if ($request_uri ~ ^[^?]*//) {
    rewrite ^ /404.php;
}
не работает.
ссылка
https://test.loca.loca/category/book//
Лог.
2.5.3.6 - baas [19/Mar/2018:13:22:01 +0300] "GET /category/book// HTTP/1.1" 200 14666 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
baas вне форума   Ответить с цитированием
Старый 19.03.2018, 13:28   #4
NothingMatters
Кандидат наук
 
Аватар для NothingMatters
 
Регистрация: 12.06.2017
Сообщений: 336
Репутация: 41199

По умолчанию Re: nginx в url 2 слэша то редирект на 404.php

Цитата:
Сообщение от baas Посмотреть сообщение
не работает.
ссылка
https://test.loca.loca/category/book//
Лог.
2.5.3.6 - baas [19/Mar/2018:13:22:01 +0300] "GET /category/book// HTTP/1.1" 200 14666 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
Потому-что так:
Код:
if ($request_uri ~ [^?]*//$) {
    rewrite ^ /404.php;
}
NothingMatters на форуме   Ответить с цитированием
Старый 19.03.2018, 15:01   #5
jkm
Профессор
 
Регистрация: 21.02.2014
Сообщений: 531
Репутация: 184568

По умолчанию Re: nginx в url 2 слэша то редирект на 404.php

Цитата:
Сообщение от baas Посмотреть сообщение
не работает.
ссылка
https://test.loca.loca/category/book//
Лог.
2.5.3.6 - baas [19/Mar/2018:13:22:01 +0300] "GET /category/book// HTTP/1.1" 200 14666 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
Nginx только перенаправит запрос на выбранный скрипт и уже php скрипт должен вызывать header() и установливать HTTP-заголовок 404 Not Found.

---------- Добавлено 19.03.2018 в 16:08 ----------

Цитата:
Сообщение от NothingMatters Посмотреть сообщение
Потому-что так:
Код:
if ($request_uri ~ [^?]*//$) {
    rewrite ^ /404.php;
}
$request_uri содержит запрос вместе с GET параметрами http://nginx.org/ru/docs/http/ngx_ht...ar_request_uri
В таком виде шаблон не совпадёт с /category/book//?lol
jkm вне форума   Ответить с цитированием
Ответ




Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Текущее время: 00:25. Часовой пояс GMT +3.

Регистрация Справка Календарь Поддержка Все разделы прочитаны