[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: редирект через .htaccess
jetistyum
есть задача, перенаправлять все запросы со старого урл


http://test.com/index2.php?option=com_ds-s...e=RSS&no_html=1
на новый
http://test.com/rss
казалось бы ничего сложного, пишем реврайт

RewriteEngine on

RewriteCond %{QUERY_STRING} option=com_ds-syndicate&type=RSS&no_html=1 [NC]
RewriteCond %{REQUEST_URI} /index2.php [NC]
RewriteRule .* /rss [R=301,L]

но эта зараза редиректит с полной строкой запроса, тоесть
http://test.com/rss?option=com_ds-syndicat...e=RSS&no_html=1

что очень некрасиво..
при чем если редиректить на другой домен, то редирект проходит без строки запроса, тоесть на
http://test2.com/rss
редирект сработает красиво.

как обойти? может кто сталкивался? в спецификации протокола HTTP к 301 редиректу не нашел ничего подобного, что должна прилагаться исходная строка запроса.

Да, можно сделать редирект через php, что сейчас и сделано, но интересно решить проблему чисто через апачевский htaccess, за сим прошу оставить предложения о альтернативных методах редиректа.







Спустя 22 минуты, 6 секунд (20.03.2010 - 04:33) qpayct написал(а):
если я не ошибаюсь, тыже сам задаёшь ему GET в описаном RewriteCond, который видимо сохраняется браузером так что единственное, что приходит на ум - обнулить GET POST на самой странице при входе

попробуй так
Redirect permanent /original.html http://new_domain.html/new.html
Redirect /olddirectory/original.html http://new_domain.com/newdirectory/newfile.html

Спустя 7 часов, 36 минут, 12 секунд (20.03.2010 - 12:09) jetistyum написал(а):
RewriteCond это Condition - условие, там проверяется переменная, и т.к. все это происходит в Apache, браузер не имеет отношения к этому, в браузер уже приходит заголовок переадресации вместе со строкой запроса.
Redirect не катит, т.к. там невозможно задать условия редиректа - строку запорса.
можно только все запросы на index2.php перенаправить в другое место, а мне нужно по конкретному гет-запросу.

Спустя 4 часа, 44 минуты, 43 секунды (20.03.2010 - 16:54) qpayct написал(а):
ну так это уже дело браузера а не .htaccess ты передал браузер принял, а теперь надо очистить.(это я так думаю)

Спустя 1 год, 24 дня, 14 минут, 7 секунд (14.04.2011 - 16:08) Фибер Оптик написал(а):
Здравствуйте!
У меня следующий вопрос:
существует такая конструкция

RewriteEngine On
RewriteRule ^catalog/diski.html$ catalog/?vcode=3526 [L]

Сейчас надо сделать перенаправление http://www.site.ru/catalog/diski.html на http://www.newsite.ru/catalog/pili-diskovie/

Для этого пишу Redirect 301 /catalog/diski.html http://www.newsite.ru/catalog/pili-diskovie/

Но результат выдаётся следующий:
происходит переадресация на страницу http://www.newsite.ru/catalog/pili-diskovie/?vcode=3526.

Подскажите, как убрать параметр?

Спасибо.

Спустя 5 часов, 15 минут, 49 секунд (14.04.2011 - 21:23) kirik написал(а):
Можно попробовать так:
RewriteRule ^catalog/diski.html$ http://www.newsite.ru/catalog/pili-diskovie/ [R=301]

Спустя 11 часов, 11 минут, 28 секунд (15.04.2011 - 08:35) Фибер Оптик написал(а):
Спасибо!
Всё дело было в строке RewriteRule ^catalog/diski.html$ catalog/?vcode=3526 [L].
Её убрал и написал Redirect 301 /catalog/diski.html http://www.newsite.ru/catalog/pili-diskovie/.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.