переадресация url c переменными $_GET
Добавлено: Ср май 21, 2014 11:07 pm
Всем привет
много искал в нете вроде ответа не нашел, а те которые нашел слишком мутные примерные, их нужно переделывать да и они все равно не работают.
Видимо потому что задача сама по себе странная.
Да и плюс я в регулярках плохо разбираюсь
Требуется сделать так чтобы любая ссылка С ПЕРЕМЕННЫМИ (когда есть вот эта часть: ?view=catalog&gods=truba_1&f=3) ведущая на сайт переадресовывалась в пустоту, в результате чего сервер выдаст 404, а 404 у меня переадресовываются на готовую страницу.
зачемпочему..?
я установил в .htaccess ЧПУ, так что теперь у меня все ссылочки выглядят красиво: http://мой_сайт/home/переменная_1/переменная_2.html
Но адрес обычный с переменными $_GET
?переменная_1=x&переменная_2=y
остался и работает.
любой кто сталкивался с сео знает что это на языке поисковиков называется "дублированный контент"
контента на сайте многовато, так что прописывать весь этот список в роботс влом да и я всегда стремлюсь к максимальной автоматизации, так как мне/кому-то потом с этим работать прийдется..
По этому я хочу чтобы все ссылки были однотипны, с виду статичны. Я так прикинул достаточно просто идетнифицировать знак вопроса в урл
Не исключаю что способ предложенный мною кому-то покажется глупым, ведь я почему-то не нашел ответа.
если что подскажите как сделать подобную функцию более вразумительным путем.
Все же:
я написал правило так:
RewriteRule ^index\.php\?+$ /404.html [R=301,L]
переадресация работает вообще на всех страницах сайта, там где есть что-либо после http://мой_сайт/
тоесть грузится только главная когда пусто после слеша...
Вроде-бы как достаточно сделать нормальную регулярку...
я много вариантов перепробовал, это единственный который вообще хотя-бы переадресовывает..
если что я пытался еще так:
^\?+$ или ^.*\?.*$
я в регулярках не силен так что...
к стати при попытках использовать RewriteCond у меня ИНОГДА сервер выдавал internal error
С файлом .htaccess у меня опыт работы насчитывает 2 дня включая сегодня.
на всякий случай приведу весь файл (пока коротенький):
Прошу помогите ибо я сам уже запарился за пол дня мудоханья с этим хтаксесом
много искал в нете вроде ответа не нашел, а те которые нашел слишком мутные примерные, их нужно переделывать да и они все равно не работают.
Видимо потому что задача сама по себе странная.
Да и плюс я в регулярках плохо разбираюсь
Требуется сделать так чтобы любая ссылка С ПЕРЕМЕННЫМИ (когда есть вот эта часть: ?view=catalog&gods=truba_1&f=3) ведущая на сайт переадресовывалась в пустоту, в результате чего сервер выдаст 404, а 404 у меня переадресовываются на готовую страницу.
зачемпочему..?
я установил в .htaccess ЧПУ, так что теперь у меня все ссылочки выглядят красиво: http://мой_сайт/home/переменная_1/переменная_2.html
Но адрес обычный с переменными $_GET
?переменная_1=x&переменная_2=y
остался и работает.
любой кто сталкивался с сео знает что это на языке поисковиков называется "дублированный контент"
контента на сайте многовато, так что прописывать весь этот список в роботс влом да и я всегда стремлюсь к максимальной автоматизации, так как мне/кому-то потом с этим работать прийдется..
По этому я хочу чтобы все ссылки были однотипны, с виду статичны. Я так прикинул достаточно просто идетнифицировать знак вопроса в урл
Не исключаю что способ предложенный мною кому-то покажется глупым, ведь я почему-то не нашел ответа.
если что подскажите как сделать подобную функцию более вразумительным путем.
Все же:
я написал правило так:
RewriteRule ^index\.php\?+$ /404.html [R=301,L]
переадресация работает вообще на всех страницах сайта, там где есть что-либо после http://мой_сайт/
тоесть грузится только главная когда пусто после слеша...
Вроде-бы как достаточно сделать нормальную регулярку...
я много вариантов перепробовал, это единственный который вообще хотя-бы переадресовывает..
если что я пытался еще так:
^\?+$ или ^.*\?.*$
я в регулярках не силен так что...
к стати при попытках использовать RewriteCond у меня ИНОГДА сервер выдавал internal error
С файлом .htaccess у меня опыт работы насчитывает 2 дня включая сегодня.
на всякий случай приведу весь файл (пока коротенький):
- Код: выделить все
# Do not remove this line or mod_rewrite rules and search engine friendly URLs will stop working
RewriteBase /
RewriteEngine on
# Ограничиваем урл так чтобы переменные не передавались (проблемная строка)
RewriteRule ^index\.php\?+$ /404.html [R=301,L]
# ЧПУ:
RewriteRule ^home/([^/]+)\.html+$ index.php?view=$1 [L]
RewriteRule ^home/([^/]+)/+([^/]+)\.html+$ index.php?view=$1&title=$2 [L]
# Переадресация ошибки 404
ErrorDocument 404 /home/p_404.html
Прошу помогите ибо я сам уже запарился за пол дня мудоханья с этим хтаксесом