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

A
На сайте с 20.04.2015
Offline
25
#851

Сайт на WP, мультиязычный с индексами /en/ и /fr/, решили отказаться от языковых версий, сделать их отдельными сайтами потом.

Сейчас стал вопрос как настроить 301 редирект с английских и французких страниц на главную https://site.com/ (сайт вложенности site.com/category/ )

Помогите найти нужный редирект

D
На сайте с 04.01.2012
Offline
115
#852

Подскажите, пожалуйста, как сделать редирект через htaccess всех адресов из определенной директории с пробелами на адреаса с дефисами?

Т.е. чтобы все адреса

http://site.com/search/primer stranici/ и, соответственно,

http://site.com/search/primer%20stranici/

Редиректились на

http://site.com/search/primer-stranici/

При этом чтобы в остальных директориях пробелы в адресах не редиректились!

J
На сайте с 20.02.2014
Offline
120
jkm
#853
dwell:
Подскажите, пожалуйста, как сделать редирект через htaccess всех адресов из определенной директории с пробелами на адреаса с дефисами?
Т.е. чтобы все адреса
http://site.com/search/primer stranici/ и, соответственно,
http://site.com/search/primer%20stranici/
Редиректились на
http://site.com/search/primer-stranici/

При этом чтобы в остальных директориях пробелы в адресах не редиректились!

RewriteRule "^(search/.*?) (.*)" /$1-$2 [R=301,L]
Brutality
На сайте с 06.01.2011
Offline
153
#854

Привет. сейчас стоит такая конструкция:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www.domain.com/?$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]

нужно чтобы ссылка /sitemap.xml была доступна по обоим протоколам, пробовал делать разные исключения:

RewriteCond %{REQUEST_URI} !sitemap.xml$
RewriteCond %{REQUEST_URI} !^/sitemap.xml$

(вставлял после строки RewriteCond %{HTTP:X-Forwarded-Proto} !https) не хочет работать.

в чем может быть проблема? буду благодарен за совет.

ps файла физически нет на сервере, сайтмап генерируется плагином

* Вероятно, лучший хостинг: выбор Pikabu, AdmitAd, Maxim, ЯП и др. Дата-центры в Европе и США (http://clc.to/fx). Цены от 1 евро * ПРОМОКОДЫ, скидки на хостинг и серверы: FastVPS, Inferno, Fornex, Fozzy (http://clc.to/pc)
S
На сайте с 30.09.2016
Offline
469
#855
Brutality:
в чем может быть проблема?

В кешировании браузером, например. И точку заэкранируйте, для порядка.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Headlesz
На сайте с 18.05.2009
Offline
152
#856

Ребята, у меня не стандартная ситуация, такую не нашел в инете.

У меня нужно сделать двойной а то и тройной 301 редирект

Мы поменяли сайт, и сменился элемент в URL, было CATS стало CATALOG

И так же сайт теперь работает на HTTPS

Еще у карточек товаров убрали в конце .html

В итоге у меня 3 редиректа (((((

Я поставил редиректы, но они срабатывают в три этапа, можно это как-то объединить чтобы был один 301 ?

Изучаем п. 4.4 правил форума
J
На сайте с 20.02.2014
Offline
120
jkm
#857

Headlesz, в правилах для замены CATS и удаления .html нужно указать полный адрес c https://domain и поставить их над правилом для редиректа на https.

VC
На сайте с 27.10.2002
Offline
127
VIC
#858
Asali:
Сайт на WP, мультиязычный с индексами /en/ и /fr/, решили отказаться от языковых версий, сделать их отдельными сайтами потом.
Сейчас стал вопрос как настроить 301 редирект с английских и французких страниц на главную https://site.com/ (сайт вложенности site.com/category/ )
Помогите найти нужный редирект

RewriteRule ^(en|fr)\/(.*)$ https://site.com/ [R=301,L]

Это если нужно перенаправить все страницы с /en/ и /fr/ в начале URI на главную. А что такое "сайт вложенности" – вряд ли кто-то сможет понять...

Headlesz
На сайте с 18.05.2009
Offline
152
#859
jkm:
Headlesz, в правилах для замены CATS и удаления .html нужно указать полный адрес c https://domain и поставить их над правилом для редиректа на https.

Спасибо за совет. Я сделал вот так

RewriteCond %{REQUEST_URI} ^/cats(.*)$ [NC]

RewriteRule ^cats(.*)$ /catalog$1 [L,R=301]

RewriteRule (.+)\.html?$ https://site.ru/$1 [R=301,L]

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

Теперь 2 редиректа получается, как cats на catalog редиректить чтобы полный урл указывать не знаю. ПОдскажете?

J
На сайте с 20.02.2014
Offline
120
jkm
#860
Headlesz:

RewriteCond %{REQUEST_URI} ^/cats(.*)$ [NC]
RewriteRule ^cats(.*)$ /catalog$1 [L,R=301]

RewriteRule ^cats(.*)$ https://site.ru/catalog$1 [L,R=301]

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