Как сделать редирект (301, 302). Общая тема

VH
На сайте с 30.03.2011
Offline
61
#521

Всем привет!

В продолжение моей проблемы, как редирект описанный ниже переложить на nginx?

jkm:

RewriteCond %{HTTP_HOST} =www.site.com [NC]
RewriteRule ^(de|es|xx|yy)/.*$ https://site.net/$0 [R=301,L]

Спасибо!

J
На сайте с 20.02.2014
Offline
120
jkm
#522


location ~ ^/(de|es|xx|yy)/ {
return https://site.net$request_uri;
}

Ставить в блоке server для www.site.com.

Z
На сайте с 21.07.2013
Offline
32
#523

раньше в разделе сайта было формирование урлов по принципу site.ru/1/11. 1-id категории, 11- id статьи. Сейчас site.ru/category/article , где category - алиас категории, article - алиас статьи в категории. Первый вариант урла уже есть в индексе, как настроить внутренний редирект для nginx по этому разделу, чтобы не потерять позиции и вес старых ссылок?

J
На сайте с 20.02.2014
Offline
120
jkm
#524
Zhzves:
раньше в разделе сайта было формирование урлов по принципу site.ru/1/11. 1-id категории, 11- id статьи. Сейчас site.ru/category/article , где category - алиас категории, article - алиас статьи в категории. Первый вариант урла уже есть в индексе, как настроить внутренний редирект для nginx по этому разделу, чтобы не потерять позиции и вес старых ссылок?

Для перенаправления добавить отдельный блок location ~ ^/\d+/\d+$ в котором будет куча строк с rewrite ^/1/11$ /category/article


location ~ ^/\d+/\d+$ {
rewrite ^/1/11$ /category/article permanent;
rewrite ^/5/20$ /category2/article3 permanent;
}

Флаг permanent - постоянное перенаправление с кодом 301.

Флаг last завершает обработку текущего набора директив модуля ngx_http_rewrite_module, после чего ищется новый location, соответствующий изменённому URI.

Если поменять permanent на last, то перенаправление будет внутренним и страница будет доступна по /1/11 и /category/article.

S
На сайте с 20.06.2012
Offline
131
#525

Проблема такая, что через htaccess сделал, чтобы с http перекидывало на https - работает, но все еще можно зайти через другие страницы на http. Что я не так сделал?

M2
На сайте с 01.08.2007
Offline
111
#526

Помогите разобраться.

Есть сайт на html со структурой типа

a.ru/razdel1/str1.html

...

a.ru/razdel20/papka5/papka2/str3.html

Таких страниц на сайте 240 штук.

Меняю структуру на следующую:

a.ru/1/1.html

a.ru/1/2.html

...

a.ru/1/240.html

Вопрос: каким способом сделать редирект со старых страниц на новые? Пока вижу 3 варианта:

1. Прописать 240 строк в .htaccess. Можно ли так сделать? Не будет ли сильной нагрузки на сервер (виртуальный)? При этом удалить старые страницы с сайта.

2. Оставить старые страницы и на каждой прописать код редиректа (есть ли такой?).

3. Сделать через таблицу переназначения URL (вроде так называется).

В будущем после достижения 999 страниц в папке 1 создастся папка 2 и т. д.

S
На сайте с 30.09.2016
Offline
469
#527

marat23, в первом приближении редирект примерно такой

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/[1-9]
RewriteRule ^.+[^0-9]([0-9]{1,3})\.html$ /1/$1.html [L,R=301]

Правда, могут и невиновные попасть "под раздачу", но это уже надо конкретнее смотреть - у Вас всё в общем виде показано.

UPD: лучше эти страницы удалить и добавить строку на проверку, что такого файла нет, как показано выше. А вообще, лучше такие страницы через БД делать.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
M2
На сайте с 01.08.2007
Offline
111
#528

Возможно, я не совсем понятно написал. На данный момент есть 240 html страниц с разными названиями и уровнями вложенности. Требуется новая структура, чтобы в одной папке было 999 страниц с названиями от 1 до 999.

Мне кажется, самый лучший вариант - добавить 240 строк с 301 редиректом в файл .htaccess. Сработает ли такое? Если нет, то на каждую старую страницу добавить код перенаправления, если такой код существует.

[umka]
На сайте с 25.05.2008
Offline
456
#529

Сработает.

Ещё вариант, если у вас все страницы в файлах и посещаемость не запредельная, то можно всё пропустить через скрипт (PHP), который будет сам разбирать URL, и отдавать нужный файл.

Лог в помощь!
M2
На сайте с 01.08.2007
Offline
111
#530
'[umka:
;15240806']...скрипт (PHP), который будет сам разбирать URL, и отдавать нужный файл.

А что это за скрипт? Его на каждой из старых 240 страниц надо прописывать? Или это типа таблицы переназначения ссылок?

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