Не работает 301 редирект

rasandrey

Участник
Регистрация
2 Апр 2009
Сообщения
214
Реакции
6
Подскажите, плиз, что не так делаю. Есть сайт, у которого ссылка сейчас имеет вид index.php?car=100 . Хочу сделать редирект на Для просмотра ссылки Войди или Зарегистрируйся

htaccess на данный момент имеет вид:
Код:
AddDefaultCharset windows-1251

RewriteEngine on

RewriteRule ^vip$ index.php?page=17 [L]
RewriteRule ^about$ index.php?page=1 [L]
RewriteRule ^contact$ index.php?page=2 [L]
RewriteRule ^reklama$ index.php?page=3 [L]

RewriteCond ^(.*)$ http://домен.1gb.ua/update.php
RewriteRule ^(.*)$ http://www.домен.com.ua/update.php [R=permanent,L] 

RewriteCond %{HTTP_HOST} ^домен.com.ua
RewriteRule ^(.*)$ http://www.домен.com.ua/ [R=permanent,L] 

RewriteCond %{HTTP_HOST} ^домен2.com.ua
RewriteRule ^(.*)$ http://www.домен2.com.ua/ [R=permanent,L]

Пытаюсь добавить правило
после строки: RewriteEngine on в виде:
Код:
Redirect 301 /index.php?car=100 http://www.домен.com.ua/car/100

Но по запросу Для просмотра ссылки Войди или Зарегистрируйся редирект не происходит. Что я не правильно делаю?

Добавлено через 56 минут
Прописал в htaccess правило:

Код:
RewriteCond %{QUERY_STRING} (.*)car=([0-9]+)(.*)
RewriteRule ^(.*)$ http://домен/car/%2? [L,R=301]

Перенаправление заработало. Теперь с index.php?car=значение перенаправляет на car/значение.

Остался еще один вопрос как теперь прописать правило, чтоб была подмена index.php?car=значение на car/значение . делаю так:

Код:
RewriteRule ^car/(.*)\.html$ /index.php?car=$1 [L]

Но ничего не происходит
 
Перенаправление заработало. Теперь с index.php?car=значение перенаправляет на car/значение.
Остался еще один вопрос как теперь прописать правило, чтоб была подмена index.php?car=значение на car/значение . делаю так:
Код:
RewriteRule ^car/(.*)\.html$ /index.php?car=$1 [L]
Но ничего не происходит
Не всегда можно уверенно писать анкор начала правила, тоесть ^, т.к. там может быть ещё и слеш, или другие даные.
Код:
RewriteEngine On 
RewriteRule ^/?car/(.*)\.html$ /index.php?car=$1 [L]
 
А если так:
Код:
RewriteCond %{REQUEST_URI}  ^/$
RewriteCond %{QUERY_STRING} ^index.php?car=([0-9]*)$
RewriteRule ^(.*)$ /car/%1/? [R=301,NC,L]

И вот это может пригодиться:
Код:
RewriteRule ^/car/([0-9]*)/?$ index.php?car=$1 [L]
 
Не хочет никак :)

Если не ставить правило (а только перенаправление)
Код:
RewriteRule ^/?car/(.*)\.html$ /index.php?car=$1 [L]
То выбивает 404

если его вставить вместе с перенаправлением, то FF пишет "Неверное перенаправление на странице"
 
Не хочет никак :)
Если не ставить правило (а только перенаправление)
Код:
RewriteRule ^/?car/(.*)\.html$ /index.php?car=$1 [L]
То выбивает 404
если его вставить вместе с перенаправлением, то FF пишет "Неверное перенаправление на странице"
 
Не работает и все тут...

Тестирую на denwere может из-за этого проблема?

Полный htaccess выкладываю, может есть какая-то ошибка

Код:
AddDefaultCharset windows-1251

RewriteEngine on

RewriteRule ^/?car/(.*)\.html$ /index.php?car=$1 [L]
RewriteRule ^saloni/$ /index.php?saloni [L,QSA]

RewriteCond %{QUERY_STRING} (.*)car=([0-9]+)(.*)
RewriteRule ^(.*)$ /car/%2.html? [L,R=301]
 
Не работает и все тут...
Тестирую на denwere может из-за этого проблема?
Полный htaccess выкладываю, может есть какая-то ошибка
Код:
AddDefaultCharset windows-1251
RewriteEngine on
RewriteRule ^/?car/(.*)\.html$ /index.php?car=$1 [L]
RewriteRule ^saloni/$ /index.php?saloni [L,QSA]
RewriteCond %{QUERY_STRING} (.*)car=([0-9]+)(.*)
RewriteRule ^(.*)$ /car/%2.html? [L,R=301]
Извиняюсь, что долго не заходил. Теперь к сути дела. Когда выполняется редирект от RewriteRule ^/?car/(.*)\.html$ /index.php?car=$1 [L] переходит сразу к редиректу RewriteCond %{QUERY_STRING} (.*)car=([0-9]+)(.*)
RewriteRule ^(.*)$ /car/%2.html? [L,R=301] и выполняется вечный цикл.
Вот нормальное правило, на денвере тоже тестировал:
Код:
AddDefaultCharset windows-1251
RewriteEngine on
RewriteRule ^/?car/(\d+)\.html$ /index.php?car=$1 [L]
RewriteRule ^saloni/$ /index.php?saloni [L,QSA]
 
Назад
Сверху