Как сделать 301 редирект с урла index.pl?

A
На сайте с 14.08.2010
Offline
80
1077

Доброго всем дня.Подскажите.

Как сделать 301 редирект со страницы вида: site.net/index.pl?act=CONTACTS на страницу site.net/contact,

вот такой не работает:

RewriteCond %{QUERY_STRING} ^act=CONTACTS

RewriteRule ^.*$ /contact? [R=301,L]

Дело тут в index.pl , если б index.php то было бы норм. Хелп!

mendel
На сайте с 06.03.2008
Offline
232
#1
andee:
RewriteCond %{QUERY_STRING} ^act=CONTACTS

^ означает начало строки, так что это условие у вас не пройдет

Шутку любишь над Фомой, так люби и над собой. (с) народ. Бесплатные списки читабельных(!) свободных доменов (http://burzhu.net/showthread.php?t=2976) (5L.com) Сайты, All inclusive. 5* (/ru/forum/962215)
S
На сайте с 30.09.2016
Offline
469
#2

А может быть, сервер неправильно настроен? Не энджинкс, случаем?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
A
На сайте с 14.08.2010
Offline
80
#3
mendel:
^ означает начало строки, так что это условие у вас не пройдет

Ага понял, подскажите как правильно сделать

---------- Добавлено 08.08.2017 в 14:57 ----------

Sitealert:
А может быть, сервер неправильно настроен? Не энджинкс, случаем?

Это движок самописный, с которого нужно съехать без больших потерь)

M
На сайте с 04.12.2013
Offline
223
#4
andee:
Ага понял, подскажите как правильно сделать

Для показанного примера ваше условие подходит. Только вопрос, всегда ли параметр act идет на первом месте.

---------- Добавлено 08.08.2017 в 17:06 ----------

andee:
Это движок самописный, с которого нужно съехать без больших потерь)
Т.е. index.pl уже не будет обработчиком? Тогда что, index.php?

---------- Добавлено 08.08.2017 в 17:19 ----------

Если у вас в новом движке имя страницы тоже передается через строку параметров act=CONTACTS, то будет возникать конфликт с показанным правилом для редиректа. Добавьте в маску правила для редиректа имя файла index.pl (^index\.pl$).
Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
mendel
На сайте с 06.03.2008
Offline
232
#5
andee:
Как сделать 301 редирект со страницы вида: site.net/index.pl?act=CONTACTS на страницу site.net/contact,
miketomlin:
Для показанного примера ваше условие подходит.
miketomlin:
Только вопрос, всегда ли параметр act идет на первом месте.

Вот скажите мне убогому каким образом оно подходит? И каким образом act вдруг оказался на первом месте?

"Чукча не читатель, чукча писатель" (с) анекдот

andee:
Ага понял, подскажите как правильно сделать

Да по идее в лоб должно работать:

RewriteRule ^index.pl?act=CONTACTS$ /contact [R=301,L]

M
На сайте с 04.12.2013
Offline
223
#6

Ув. mendel, если вы не знаете даже осн. принципов работы mod_rewrite, зачем возражать? За минус в репу тоже огромное спасибо. Я такими пакостями не занимаюсь, хотя вот за это следовало бы это сделать:


RewriteRule ^index.pl?act=CONTACTS$ /contact [R=301,L]

P.S. Если извинитесь, как-нибудь проконсультирую вас на досуге. Серьезно. Сейчас немного занят.

S
На сайте с 30.09.2016
Offline
469
#7
andee:

Цитата:
Сообщение от Sitealert
А может быть, сервер неправильно настроен? Не энджинкс, случаем?



Это движок самописный, с которого нужно съехать без больших потерь)

Мне Серверу, извиняюсь, по барабану, какой там у Вас движок. Но если это энджинкс, и он не знает, что там есть перл, то до хтакцесса дело может просто не дойти.

mendel
На сайте с 06.03.2008
Offline
232
#8

Невнимательно прочитал, признаю.

Ненавижу мод_реврайт.

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

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