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

bandesign
На сайте с 10.02.2010
Offline
94
#811

Класс, заработало! А как быть со ссылками такого типа? www.bandesign.ru/portfolio.php?work=278&s=1

Дизайн и изготовление рекламы (https://bandesign.ru)
PS
На сайте с 07.06.2018
Offline
34
#812

Доброго времени суток!

В планах смена домена. Просьба проконсультировать в правильном редиректе домена, яз.версии и каталога.

есть рус.версия

site.com.ua/

site.com.ua/russ-catalog/nazvanie-posta

укр. версия

site.com.ua/uk

site.com.ua/uk/ukr-catalog/nazvanie-posta

будет рус.версия

site.ua/

site.ua/russ-catalog/nazvanie-posta

укр.версия

site.ua/ua/

site.ua/ua/russ-catalog/nazvanie-posta

Какой порядок действий?

1. редирект домена

RewriteCond %{HTTP_HOST} site.com.ua

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

2. Редирект языковой версии

RewriteRule ^(.*)/uk/(.*)$ $1/ua/$2 [R=301,L]

3. Редирект каталога

RewriteRule ^(.*)/ukr-catalog/(.*)$ $1/russ-catalog/$2 [R=301,L]

или сразу?

RewriteRule ^(.*)/uk/ukr-catalog/(.*)$ $1/ua/russ-catalog/$2 [R=301,L]

Правильно понимаю?

WM
На сайте с 17.03.2011
Offline
55
#813

Добрый день, помогите, пожалуйста с htaccess.

Есть страницы типа

/catalog/vitaminy

/ru/catalog/vitaminy

/kiev/catalog/vitaminy

/ru/kiev/catalog/vitaminy

и т.д.

Я хочу, чтобы все, что идет до vitaminy осталось нетронутым в каждом случае, а vitaminy заменить на vitaminy-i-bady

J
На сайте с 20.02.2014
Offline
120
jkm
#814
WiMax:
Добрый день, помогите, пожалуйста с htaccess.

Есть страницы типа
/catalog/vitaminy
/ru/catalog/vitaminy
/kiev/catalog/vitaminy
/ru/kiev/catalog/vitaminy
и т.д.

Я хочу, чтобы все, что идет до vitaminy осталось нетронутым в каждом случае, а vitaminy заменить на vitaminy-i-bady

RewriteRule ^(.*/vitaminy)$ /$1-i-bady [R=301,L]
WM
На сайте с 17.03.2011
Offline
55
#815
jkm:
RewriteRule ^(.*/vitaminy)$ /$1-i-bady [R=301,L]

Спасибо!

А если конечный урл будет больше отличаться?

например, старый урл - [все те же как у витаминов]/med-izdeliya а новый [остаются те же]/prochee

можно так?

RewriteRule ^(.*)med-izdeliya(.*)$ $1prochee$2 [R=301,L]

M5
На сайте с 18.01.2011
Offline
110
#816

Здравствуйте. Помогите пж. Хотел редирект только с http на https, а он с https на https тоже действует.

Если так не получится, хотя бы эту страницу редиректить не надо. "site.ru/assets/components/mspyacassa/controllers/minishop2.php"

ps 301 редирект у меня работает в 2х случаях... и на всякий случай прилагаю весь htaccess

RewriteEngine on

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteBase /

RewriteEngine on

RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /

RewriteEngine on

RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteBase /

RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.ru/$1/ [L,R=301]

# Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com [NC]
#RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
#
# or for the opposite domain.com -> www.domain.com use the following
# DO NOT USE BOTH
#
#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^www\.example-domain-please-change\.com [NC]
#RewriteRule (.*) https://www.example-domain-please-change.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.([A-Za-z0-9_-]*)\.site\.ru
RewriteRule ^(.*)$ https://%1.site.ru/$1 [R=permanent,L]

# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
# https://www.domain.com when your cert only allows https://secure.domain.com
#RewriteCond %{SERVER_PORT} !^443
#RewriteRule (.*) https://example-domain-please-change.com/$1 [R=301,L]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

С уважением. Простите за длинный пост.

S
На сайте с 30.09.2016
Offline
469
#817
mazafaka5:
301 редирект у меня работает в 2х случаях

выберите уже одно правило из этих двух

RewriteCond %{HTTP:X-HTTPS} !1
RewriteCond %{ENV:HTTPS} !on
И не надо по несколько раз включать рерайт
RewriteEngine on
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
M5
На сайте с 18.01.2011
Offline
110
#818
Sitealert:
выберите уже одно правило из этих двух

Используется только этот:

RewriteCond %{ENV:HTTPS} !on

если убираю "!on" - ломается сайт 500 ошибка,

если убираю "RewriteEngine on" - редирект не работает

S
На сайте с 30.09.2016
Offline
469
#819
mazafaka5:
если убираю "!on" - ломается сайт 500 ошибка

Ошибка бывает, когда что-то вставляют, а не убирают

mazafaka5:
если убираю "RewriteEngine on" - редирект не работает
RewriteEngine on надо прописывать 1 раз, а не 2, 5 или 25.
M5
На сайте с 18.01.2011
Offline
110
#820
Sitealert:
Ошибка бывает, когда что-то вставляют, а не убирают RewriteEngine on надо прописывать 1 раз, а не 2, 5 или 25.

ясно, но как написать то?

сейчас так

RewriteEngine on

RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /

Так редиректа нет


RewriteCond %{ENV:HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /

А так, без !on 500 Server error.


RewriteCond %{ENV:HTTPS}
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /

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