#.htaccess #mod-rewrite #redirect
#.htaccess #мод-перезапись #перенаправление
Вопрос:
Пытаюсь получить простое перенаправление 301 с помощью htaccess, используя этот код: Перенаправление 301 /cat/radiator-cages/product/radiator-support-cage/http://www.mysite.com/product/radiator-cages/custom-radiator-support-cage /
Результаты отправляют меня в http://www.mysite.com/product/radiator-cages/custom-radiator-support-cage/?page=cat/radiator-cages/product/radiator-support-cage
Есть идеи, что я делаю не так? Заранее спасибо за любую помощь.
—Обновить—
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]
RewriteRule ^product/(.*)/(.*)/$ /index.php?page=productamp;parent_url=$1amp;product=$2 [L,NC]
Redirect 301 /cat/radiator-cages/product/radiator-support-cage/ http://www.mysite.com/product/radiator-cages/custom-radiator-support-cage/
Комментарии:
1. Есть ли у вас другие правила в файле .htaccess, которые могли бы вызывать эту ошибку? Например, RewriteRule
2. @Ryan Matthews Я обновил исходное сообщение дополнительными правилами, которые у меня есть в моем htaccess
Ответ №1:
Я предлагаю сначала попробовать использовать инструкцию Redirect 301.
Тогда ваш htaccess должен выглядеть примерно так
Redirect 301 /cat/radiator-cages/product/radiator-support-cage/ http://www.mysite.com/product/radiator-cages/custom-radiator-support-cage/
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]
RewriteRule ^product/(.*)/(.*)/$ /index.php?page=productamp;parent_url=$1amp;product=$2 [L,NC]
Редактировать:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]
RewriteRule ^/cat/radiator-cages/product/radiator-support-cage/$ http://www.mysite.com/product/radiator-cages/custom-radiator-support-cage/ [R=301,L]
RewriteRule ^product/(.*)/(.*)/$ /index.php?page=productamp;parent_url=$1amp;product=$2 [L,NC]
http://www.gerronmulder.com/common-seo-rewrite-rules-for-apache-using-htaccess/
Комментарии:
1. Также, чтобы проверить, работает ли перенаправление, удалите правила перезаписи и посмотрите, работает ли это. Не забудьте также очистить свой кэш (я заметил, что у firefox иногда возникает эта проблема)
2. @Ryan Matthews, На самом деле, я отключил правила перезаписи, и это сработало. Итак, что теперь мне делать?
3. Работает ли это, если у вас есть только первые 3 строки под перенаправлением, но расставлены точки над правилом перезаписи для product?
4. @Ryan Matthews, Да, я прокомментировал эти 3 строки под перенаправлением, и это сработало. Кстати, спасибо за помощь. Я действительно ценю это.
5. Что, если в нем есть все, кроме этой строки RewriteRule ^product/(.*)/(.*)/$ / index.php?page=productamp;parent_url=$ 1amp;product = $2 [L, NC]