rewrite 301 при 404 ошибке

iccup
На сайте с 01.05.2016
Offline
205
2680

есть проблема - ошибки 404 на страницах пагинации, например, /xfsearch/doppole/girls/page/54/, как сделать средствами nginx редирект 301 на /xfsearch/dopople/girls/ при условии что страница пагинации отдает 404 ошибку? Причем в урлах может любое значение отличное от girls.

kimsufi.com ( https://www.kimsufi.com ) очень дешевые и качественные дедики https://clck.ru/gvF9p - антибот, использую уже 3 года.
SeVlad
На сайте с 03.11.2008
Offline
1609
#1

С 404й нужно не редирект делать, а оформлять нормально эту страницу.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
E
На сайте с 22.06.2016
Offline
45
#2

Есть такая техника. Когда при обращении к недействительной странице списка выполняется перенаправление на первую или последнюю страницу, либо еще куда-то. Только перенаправление, нужно делать временное, иначе теоретически при обращении к ранее недействительной странице браузер может помешать ее увидеть, несмотря на то, что на момент обращения она уже действительна. С другой стороны подобная техника обычно применяется к подлежащим редактированию спискам, когда отдельные его элементы могут быть удалены, в результате чего количество действительных страниц сократится. Для "обложки" сайта нет необходимости это делать.

---------- Добавлено 02.09.2018 в 12:20 ----------

iccup, это не средствами Web-сервера делается, а программно.

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
egos:
это не средствами Web-сервера делается, а программно.

Делать "программно" редиректы - плохой поход. Это абсолютно задача сервера.

E
На сайте с 22.06.2016
Offline
45
#4

Не говорите глупости.

SeVlad
На сайте с 03.11.2008
Offline
1609
#5
egos:
Не говорите глупости.

Обосновано,чо :)

Это ты не неси чушь, а думай головой.

Редирект должен происходить ДО того, как запуститься всякие php, сгенерируется страница и уже от неё будет получен ответ.

E
На сайте с 22.06.2016
Offline
45
#6

SeVlad, тут нечего обосновывать. На всякий случай сообщаю, что вы общаетесь с Web-программистом с большим стажем.

SeVlad
На сайте с 03.11.2008
Offline
1609
#7
egos:
тут нечего обосновывать. .

Мамой клянусь, ага? :)

egos:
На всякий случай сообщаю, что вы общаетесь с Web-программистом с большим стажем.

Всё понятно :) Такие тут иногда встречаются.

E
На сайте с 22.06.2016
Offline
45
#8

iccup, если больше нечем занять сервер, смотрите fastcgi_intercept_errors и error_page.

iccup
На сайте с 01.05.2016
Offline
205
#9

я нашел похожу проблему, но там двиг джумла и структура урла немного другая

error_page 404 =404 /404.html;
location ~* \.php$ {
include fastcgi_def;
include add/cachephp;
if ($request_uri ~ /(.+)/page-\d+\.html) {
error_page 404 = @page;
}
fastcgi_intercept_errors on;
}
location / {try_files $uri /index.php?$args;}

location @page {
if ($request_uri ~ /(.+)/page-\d+\.html) {return 301 /$1.html;}
return 410;
}

что, зачем и почему? не разберусь. Ссылка на топик - https://toster.ru/q/208680

iccup
На сайте с 01.05.2016
Offline
205
#10

такой конфиг не работает как надо, он редиректит все подряд - и существующие страницы и страницы 404,

server {
location ~ /xfsearch/alt/(.+)/page/([0-9]+)/ {
error_page 404 = @page;
}
location @page {
if ($request_uri ~ /xfsearch/alt/(.+)/page/([0-9]+)/) {return 301 /xfsearch/alt/$1/;}
return 404;
}
...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий