htaccess правильный 301 редирект

(Ответов: 4, Просмотров: 4423)
  1. Новичок
    • Регистрация: 13.09.2011
    • Сообщений: 5
    • Репутация: 1
    Здравствуйте! Подскажите пожалуйста - поменял структуру сайта, перенаправляю старые url на новые через htaccess путем:

    Redirect 301 /catalog/url/ http://www.site.ru/catalog/maincat/cat/url/

    Но после редиректа у меня в адресной строке дописывается :
    ?razd=url - GET параметр

    Ну не могу понять почему он дописывается, у меня далее идет в htaccess

    RewriteRule ^catalog/.*\/.*\/([-_a-z0-9]+)/$ prod1.php?url=$1
    RewriteRule ^catalog/.*\/([-_a-z0-9]+)/([-_a-z0-9]+)$ prod_razd.php?url=$1&sort=$2
    RewriteRule ^catalog/.*\/([-_a-z0-9]+)/$ prod_razd.php?url=$1
    RewriteRule ^catalog/([-_a-z0-9]+)/$ prod.php?razd=$1
    RewriteRule ^catalog/ prod.php?url=cat

    Тоесть я так понимаю он сначала сделал редирект потом пощел - и должен преобразовать мою строку в prod1.php?url=$1 - ну он это делает - но зачем дописывает то ?

    если убераем строку RewriteRule ^catalog/([-_a-z0-9]+)/$ prod.php?razd=$1 - то он дописывает ?url=cat
    если убирает и RewriteRule ^catalog/ prod.php?url=cat - то тогда все нормально ничего не дописывает

    Собственно почему??? причем тут ваабще файл prod.php, если срабатывает
    RewriteRule ^catalog/.*\/.*\/([-_a-z0-9]+)/$ prod1.php?url=$1 - в файле prod1.php формируется эта страница.

    КАК так?? ваабще запутался... мастера.. помогите
    • 0
  2. Дипломник
    • Регистрация: 22.04.2011
    • Сообщений: 126
    • Репутация: 15
    Честно говоря, тяжелые для восприятия записи. Попробуйте смотреть формирование урлов построчно (т.е. сначала оставьте только первую строчку, потом только вторую, первую + вторую и т.д.). Я так понимаю, Вы не сами писали эти правила, поэтому посмотрите что за что отвечает.
    • 0
  3. Новичок
    • Регистрация: 13.09.2011
    • Сообщений: 5
    • Репутация: 1
    olegf13,

    Писал сам эти правила, правила работают на сайте, просто дело в том что при Redirect 301 со старой страницы на новую дописывется get параметр , тоесть адресная строка вот такая получается - http://www.site.ru/catalog/maincat/cat/url/?razd=url , если просто открываю http://www.site.ru/catalog/maincat/cat/url/ - то все номарльно - ничего не дописывается.

    Получается от куда может быть взят GET параметр razd - только из строки RewriteRule ^catalog/([-_a-z0-9]+)/$ prod.php?razd=$1

    Но причем тут она ваабще, если правило на ней не должно срабатывать??? Если ее удаляем то дописывает url=cat - из правила RewriteRule ^catalog/ prod.php?url=cat ...

    Весь день пурхаюсь с этим вопросом - никто ничего сказать не может((
    Последний раз редактировалось mihalich_x; 13.09.2011 в 14:51.
    • 0
  4. Новичок
    • Регистрация: 13.09.2011
    • Сообщений: 5
    • Репутация: 1
    Вообщем это правило (RewriteRule ^catalog/([-_a-z0-9]+)/$ prod.php?razd=$1) используется потому что оно подходит под /catalog/url/ - поэтому видимо и дописывает, собственно вопрос тогда изменился - как сделать редирект 301 через RewriteRule чтобы использовать 2 ЧПУ адреса???
    • 0
  5. Новичок
    • Регистрация: 13.09.2011
    • Сообщений: 5
    • Репутация: 1
    Вопрос решился сменой редиректа на
    RewriteRule ^catalog/url/(.*)$ /catalog/maincat/cat/url/$1 [R=301,L]
    • 1

    Спасибо сказали:

    Zvеr(15.09.2011),

Похожие темы

Темы Раздел Ответов Последний пост
Редирект с помошью .htaccess. Помогите.
Софт, скрипты, сервисы 5 13.12.2011 22:23
.htaccess - редирект с главной на форум
Прочее 2 01.05.2011 15:45
Правильный редирект
Софт, скрипты, сервисы 0 17.10.2010 10:48
редирект через /htaccess
Прочее 3 19.09.2009 22:30
.htaccess редирект
Прочее 9 11.09.2009 21:48

Интересные темы

как сделать редирект ссылки

Если вам нужно решить вопрос о том, как сделать редирект ссылки, то есть несколько способов.

htaccess преобразование url

Здесь можно узнать всю необходимую информацию про преобразование url с помощью файла htaccess.

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры