Nginx и редиректы 301/302 (2)

123
Skom
На сайте с 02.12.2006
Offline
165
#11
ap2002ua:
Я думаю, что вопрос как раз не тупой, это я, скоре всего не умный и неопытный. Нет. Надо?

Nginx перечитывает конфиги только после рестарта или релоада.

Самое простое - systemctl reload nginx (Ну, или как там он у вас релоадится...)

Cras amet qui numquam amavit quique amavit cras amet
SeVlad
На сайте с 03.11.2008
Offline
1609
#12
ap2002ua:
Надо?

После любого изменения конфигов любого ПО нужно его ребутить (перезапускать). Это правило.

ОК, ну почти любых изменений и почти любого ПО ;)

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

Спасибо за подсказки. Перезапускаю командой:

nginx -t && service nginx restart

Заработали редиректы. Теперь вместо 302 - пошли 301 (с передачей веса страницы).

Получил следующую проблемы:

При настройках редиректа:

rewrite ^/ru(.*) https://lifeisfreedom.net/$1 permanent;

и

rewrite ^/ru/(.*) https://lifeisfreedom.net/$1 permanent;

(толи они оба стоят, толи оставляю только первый)

получил такую проблему: если с русского переключаюсь на украинский, обратно уже не могу переключиться.

Сейчас убрал оба эти редиректа - переключение с рус на укр и обратно заработало нормально.

Что делаю не так?

Так же столкнулся с проблемой №2. Основная страница для украинского языка:

https://lifeisfreedom.net/ua/

На всякий случай проверил вариант: https://lifeisfreedom.net/ua Пишет, что редиректа нет, хотя по факту есть и ведет на страницы со слешем в конце. К чему вопрос? Увидел у яндекса, что он страница главную страницу сайта на укр языке - /ua/ то включает в поиск, то убирает и пишет в причине "Дубль".

Попробовал написать редирект типа:

rewrite ^/ua (.*) https://lifeisfreedom.net/ua/$1 permanent;

Выдало ошибку и зациклило сайт (redirected you too many times.).

Строка типа:

rewrite ^/ua https://lifeisfreedom.net/ua/ permanent;

Тоже дает ошибку. В общем, не могу понять, как правильно написать команду для 301 редиректа только одно страницы, а именно - с https://lifeisfreedom.net/ua на https://lifeisfreedom.net/ua/?

Подскажите, люди добрые :)

Skom
На сайте с 02.12.2006
Offline
165
#14

Полные примеры урлов приведите - откуда и куда надо.

А зацикливает потому, что регексп ^/ua одинаково подходит и для https://lifeisfreedom.net/ua/ и для https://lifeisfreedom.net/ua

A2
На сайте с 09.07.2014
Offline
36
#15
Skom:
Полные примеры урлов приведите - откуда и куда надо.
А зацикливает потому, что регексп ^/ua одинаково подходит и для https://lifeisfreedom.net/ua/ и для https://lifeisfreedom.net/ua

Так это и есть полные. И один (со слешем в конце, и другой (без) - при проверке показывают, что редиректа нет. А должне быть именно с без слеша в конце - на тот, что со слешем:

https://lifeisfreedom.net/ua на https://lifeisfreedom.net/ua/

Мне в случая с языком - надо сделать редирект только для одной страницы! Все остальные страницы на сайте, типа https://lifeisfreedom.net/ua/p/blog-page_6116.html и т.д. - работают без редиректа и это Ок.

SeVlad
На сайте с 03.11.2008
Offline
1609
#16
ap2002ua:
Пишет, что редиректа нет, хотя по факту есть и ведет на страницы со слешем в конце

Кто "пишет"? Редирект на месте и это дефолтное поведение ВП.

ap2002ua:
Увидел у яндекса, что он страница главную страницу сайта на укр языке - /ua/ то включает в поиск, то убирает и пишет в причине "Дубль".

Каноникала нет. Зато есть в коде

<div id="logo"><a href="https://lifeisfreedom.net/ua">Life ***8211; Is Freedom!®</a></div>
Skom
На сайте с 02.12.2006
Offline
165
#17
ap2002ua:
Так это и есть полные. И один (со слешем в конце, и другой (без) - при проверке показывают, что редиректа нет.

Так у вас там $1 в конце болтается. Что кагбе намекает на то, что ожидаются ещё какие-то параметры.

Но если тупо одну страницу на другую, то так:


location ~^/ua$ {
return 301 https://lifeisfreedom.net/ua/;
}

И, кстати, конструкции 301 в nginx правильнее писать именно так, ибо быстрее обрабатываются.

Пруф: https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#taxing-rewrites

A2
На сайте с 09.07.2014
Offline
36
#18
SeVlad:
Кто "пишет"? Редирект на месте и это дефолтное поведение ВП.


Каноникала нет. Зато есть в коде
<div id="logo"><a href="https://lifeisfreedom.net/ua">Life ***8211; Is Freedom!®</a></div>

Здесь http://4web.su/s_redirect/ для страницы https://lifeisfreedom.net/ua - пишет, что нет редиректа:

Редирект отсутствует

Полный ответ сервера по запрашиваемому адресу:

Array

(

[0] => HTTP/1.1 200 OK

[Server] => nginx

[Date] => Sat, 01 Sep 2018 11:09:01 GMT

[Content-Type] => text/html; charset=UTF-8

[Content-Length] => 87264

[Connection] => close

[Vary] => Array

(

[0] => Accept-Encoding

[1] => Accept-Encoding, Cookie

)

[Cache-Control] => max-age=3, must-revalidate

[WP-Super-Cache] => Served supercache file from PHP

[Last-Modified] => Sat, 01 Sep 2018 11:08:54 GMT

[X-Powered-By] => EasyEngine 3.6.2

)

Или этот сервис не то проверяет?

SeVlad
На сайте с 03.11.2008
Offline
1609
#19
ap2002ua:
Здесь http://4web.su/s_redirect/ для страницы https://lifeisfreedom.net/ua - пишет, что нет редиректа:
Редирект отсутствует

??

Всё на месте:

A2
На сайте с 09.07.2014
Offline
36
#20
SeVlad:
??
Всё на месте:

Не хочу показаться нудным, но это какая-то фикция и мистика

jpg 176884.jpg
123

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