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

SN
На сайте с 27.02.2010
Offline
83
#241

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

Есть урлы вида: http://site.ru/abakan/remont-startera/default.htm

их надо перманентно заредиректить на http://site.ru/abakan/remont-startera/

Попробовал такое выражение:

RedirectMatch 301 (.*)default\.htm$ http://site.ru$1

Должного эффекта не возымело ((

Подскажите в чём грабли?

tommy-gung
На сайте с 22.11.2006
Offline
300
#242

так пробуй

RewriteRule ^(.*)default\.htm$ $1 [R=301,L]
Здесь не могла быть ваша реклама
Max_1
На сайте с 02.08.2012
Offline
45
#243

:D RewriteRule (.+)default.htm /$1 [R=301,L]

Наполнение сайта (http://tino.ru/itm/1389070) / Управление ключевыми словами (http://tino.ru/itm/1733431) / Биржа труда (http://kwork.ru/?ref=9975)
SN
На сайте с 27.02.2010
Offline
83
#244

Спасибо Вам большое!

S
На сайте с 04.04.2014
Offline
41
#245

Подскажите, пожалуйста, как сделать 301 редирект через .htaccess всех страниц, которые заканчиваются на .html на главную страницу того же домена.

Главная там index.php сейчас если что.

MU
На сайте с 01.10.2013
Offline
43
#246
schulz:
Подскажите, пожалуйста, как сделать 301 редирект через .htaccess всех страниц, которые заканчиваются на .html на главную страницу того же домена.
Главная там index.php сейчас если что.


RewriteEngine on
RewriteRule "^(.*)\.html$" "/index.php" [R=301]
Хостинг на SSD от 49 руб./мес. (http://mne.ru/services/virt_hosting.shtml) + бесплатный SSL VPS/VDS на SSD в России от 75 руб./мес. (http://mne.ru/services/vps.shtml) Скидка 10% на хостинг и VPS по промокоду — SEARCHENGINES
S
На сайте с 04.04.2014
Offline
41
#247
MNERU:

RewriteEngine on
RewriteRule "^(.*)\.html$" "/index.php" [R=301]

Спасибо, ваш вариант тоже работает.

Нашел еще такой вариант - тоже работает, вдруг кому пригодится.

Но разницы я не понимаю, к сожалению.

RewriteEngine on

RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteRule !(^$|.*\.(php)) / [R=301,L]

M
На сайте с 23.08.2012
Offline
62
#248

Есть много дублей страниц типа:

site.ru/index.php?id=pade...

site.ru/?id=pade...

Редиректы:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php

RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

-------------------

RewriteCond %{THE_REQUEST} ^.*/index.php

RewriteRule ^(.*)index.php$ http://%{HTTP_HOST}/$1 [R=301,L]

они перенаправляют с http://site.ru/index.php?id=pade... на http://site.ru/?id=pade...

А надо чтоб было наоборот: http://site.ru/?id=pade... на http://site.ru/index.php?id=pade...

Подскажите такой редирект.

MU
На сайте с 01.10.2013
Offline
43
#249

Если я правильно понимаю, то такой реврайт, как вы хотите не будет работать. Всякий запрос должен быть обработан каким-то скриптом. Если с "/index.php" он будет реврайтить запросы на "/", то каким скриптом будет обработан этот запрос.

Это получится сделать, если использовать какой-нибудь энджинкс в качестве фронтенда и на энджинксе реврайтить с "/index.php" на "/", а на апаче уже обрабатывать этот запрос. В противном случае будет циклический редирект.

M
На сайте с 23.08.2012
Offline
62
#250
MNERU:
Если я правильно понимаю, то такой реврайт, как вы хотите не будет работать. Всякий запрос должен быть обработан каким-то скриптом. Если с "/index.php" он будет реврайтить запросы на "/", то каким скриптом будет обработан этот запрос.

Это получится сделать, если использовать какой-нибудь энджинкс в качестве фронтенда и на энджинксе реврайтить с "/index.php" на "/", а на апаче уже обрабатывать этот запрос. В противном случае будет циклический редирект.

А если я поставлю один из этих редиректов на страницы с site.ru/index.php?id=pade на site.ru/?id=pade, то дубли уйдут?

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