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

I9
На сайте с 14.05.2010
Offline
73
#251
Samail:
RewriteCond %{THE_REQUEST} " /forum/viewtopic.php\?f=4&t=1020(.*) "

RewriteRule ^ http://newsite.ru/mytopic.html? [R=301,L]


В примере как раз на конце вопросительный знак, что-бы не добавлял.

Протестировал, но столкнулся с проблемой.

RewriteCond %{THE_REQUEST} " /forum/viewtopic.php\?f=3&t=10(.*) "

RewriteRule ^ http://site.ru/10.html? [R=301,L]
RewriteCond %{THE_REQUEST} " /forum/viewtopic.php\?f=3&t=1045(.*) "
RewriteRule ^ http://site.ru/1045.html? [R=301,L]

Так вот редирект на 10.html срабатывает ,но редирект на 1045.html не срабатывает, выдавая ошибку.

Сильно подозреваю, из-за того что в строке 1045 присутствует строка 10.

Пробовал указывать символ конца строки $, но тоже не добился успеха.

Как правильно обработать такие исключения?

[umka]
На сайте с 25.05.2008
Offline
456
#252
ice99:

Как правильно обработать такие исключения?

Поставить выше предыдущего правила.

Лог в помощь!
FX
На сайте с 08.11.2011
Offline
35
#253

При переезде с wp на opencart пришлось сделать кучу редиректов типа

.

Все бы замечательно, но потом выяснилось, что на старом сайте на WP было проиндексировано еще кучу страниц по урлам типа

/product/fosc-ph-96n/?add-to-cart=684&_n=75e57f95b6

.

Можно ли переписать данный редирект, чтобы он перенаправлял все урлы, которые содержат

/product/fosc-ph-96n/
с любыми окончаниеми после на один адрес?

И второй вопрос. На сайте было 2 языка, то бишь все дублировалось еще и в виде

/en/product/fosc-ph-96n/

. Теперь же адрес страниц один. Есть ли возможность опять же сделать универсаный код и для

/en/product/fosc-ph-96n/ и /en/product/fosc-ph-96n/
или же придется все продублировать в виде
Redirect permanent /en/product/fosc-ph-96n/ http://site.com/cross_equipment/opticheskie_mufti/fosc-ph-96n/?
?
R1
На сайте с 30.04.2010
Offline
49
#254

Добрый день!

То ли усталость, то ли тупость не дают решить задачку..

Надо настроить 301-ый редирект с внутреннего каталога в корень сайта, т.е.:

1. Страницы типа site.ru/forum/member.php?u=153306, переадресовать на site.ru/member.php?u=153306

Это вроде бы решил простой строкой:

Redirect permanent /forum /

2. Страницу site.ru/forum/ переадресовать на site.ru/new/

Подскажете?)

V
На сайте с 12.09.2016
Offline
0
#255

Здравствуйте!

У меня такая проблема...борюсь уже 4-ый день..не могу понять как ее исправить.

Перешли мы с http на протол https. Домен у нас в поиске без www, соответственно 301 редирект должен вести на https://site.ru

На данный момент имею такой код редиректа:


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

С http с www и без - работает, переадресация идет. НО с https www на без не работает!

Подскажите пожалуйста, как добавить переадресацию на протоколе https www на без. Спасибо!

J
На сайте с 20.02.2014
Offline
120
jkm
#256
Vyrd:
Здравствуйте!

У меня такая проблема...борюсь уже 4-ый день..не могу понять как ее исправить.

Перешли мы с http на протол https. Домен у нас в поиске без www, соответственно 301 редирект должен вести на https://site.ru

На данный момент имею такой код редиректа:

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


С http с www и без - работает, переадресация идет. НО с https www на без не работает!

Подскажите пожалуйста, как добавить переадресацию на протоколе https www на без. Спасибо!


RewriteCond %{HTTP_HOST} =www.site.ru [OR,NC]
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://site.ru/$1 [L,R=301]
esperto
На сайте с 20.07.2016
Offline
60
#257

Добрый день,

Проблема в следующем: сейчас имеется htaccess с таким кодом


RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

Ссылки контактов, о компании и т.д. имеют вид: site.ru/contacts , site.ru/about , так же открываются и с www без проблем - www.site.ru/contacts , www.site.ru/about

Если удалить указанный выше кусок - ничего кроме главной не открывается, везде будет ошибка:

404 Not Found
The requested URL /contacts was not found on this server.

Но если я пропишу стандартный редирект с www на без www :


Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]

и к ранее открытому site.ru/contacts добавляю www - меня перекидывает не на site.ru/contacts как должно быть, а на site.ru/index.php

Подскажите, как можно исправить?

Samail
На сайте с 10.05.2007
Offline
369
#258

А что вы получить то хотите в итоге? Если просто редирект с www, то после того что у вас уже было в htaccess добавьте:

RewriteCond %{HTTP_HOST}  ^www\.(.+)$  [NC]

RewriteRule ^(.*) http://%1/$1 [L,R=301]
[Удален]
#259

Есть же раздел "веб-строительство"

esperto
На сайте с 20.07.2016
Offline
60
#260
Samail:
А что вы получить то хотите в итоге? Если просто редирект с www, то после того что у вас уже было в htaccess добавьте:
RewriteCond %{HTTP_HOST}  ^www\.(.+)$  [NC]

RewriteRule ^(.*) http://%1/$1 [L,R=301]

Добавляю, но после этого, если к ранее открытому site.ru/contacts добавляю www - меня перекидывает не на site.ru/contacts как должно быть, а на site.ru/index.php

---------- Добавлено 14.09.2016 в 18:16 ----------

Miha Kuzmin (KMY):
Есть же раздел "веб-строительство"

Если не там создал тему - извиняюсь. Просто в данном разделе видел много похожих вопросов: раз, два, три и т.д.

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