Здравствуйте! Подскажите пожалуйста - поменял структуру сайта, перенаправляю старые 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 формируется эта страница.
КАК так?? ваабще запутался... мастера.. помогите
- 13.09.2011 13:29
- Регистрация: 13.09.2011
- Сообщений: 5
- Репутация: 1
- 13.09.2011 14:42
- Регистрация: 22.04.2011
- Сообщений: 126
- Репутация: 15
Честно говоря, тяжелые для восприятия записи. Попробуйте смотреть формирование урлов построчно (т.е. сначала оставьте только первую строчку, потом только вторую, первую + вторую и т.д.). Я так понимаю, Вы не сами писали эти правила, поэтому посмотрите что за что отвечает.
- 13.09.2011 14:47
- Регистрация: 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.
- 13.09.2011 17:29
- Регистрация: 13.09.2011
- Сообщений: 5
- Репутация: 1
Вообщем это правило (RewriteRule ^catalog/([-_a-z0-9]+)/$ prod.php?razd=$1) используется потому что оно подходит под /catalog/url/ - поэтому видимо и дописывает, собственно вопрос тогда изменился - как сделать редирект 301 через RewriteRule чтобы использовать 2 ЧПУ адреса???
- 14.09.2011 08:00
- Регистрация: 13.09.2011
- Сообщений: 5
- Репутация: 1
Вопрос решился сменой редиректа на
RewriteRule ^catalog/url/(.*)$ /catalog/maincat/cat/url/$1 [R=301,L]Спасибо сказали:
Zvеr(15.09.2011),
Тэги топика:
- catalog,
- htaccess,
- prod,
- razd,
- rewriterule,
- второй,
- дописывать,
- первый,
- правильный,
- редирект,
- строка
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Редирект с помошью .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.