Мистика с mod_rewrite и .htaccess

H
На сайте с 17.03.2005
Offline
153
507

Или я глючу, или mod_rewrite, или это мистика

Подскажите как средиректить с урла

http://site.com/todo.php?aaaaaaa

на

http://test.com/aaaaaaa

Правило:

RewriteEngine On

RewriteRule ^todo\.php\?(.*)$ http://test.com/$1 [R]

не срабатывает, не понимаю почему

(нужно именно в такой форме, это просто пример, заткнулся на вопросике и уже пол часа мучаюсь)

SUTRA (http://kytoon.com/sutra/) - лучшая система управления трафиком
LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#1
не срабатывает, не понимаю почему

Потому-что это уже переменные, а не сам урл :)

Вам нужно работать с этим, переделайте под себя.

RewriteCond %{QUERY_STRING} ^(.+\.css)$

RewriteRule ^(.*)$ http://site.ru/$1\?%1 [R]

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
H
На сайте с 17.03.2005
Offline
153
#2

да, сейчас наверное сделаю вашим способом, спасибо :)

однако вопрос открыт, ведь если убрать \? вот так:

RewriteRule ^todo\.php(.*)$ http://test.com/$1 [R]

то редирект происходит! только конечно уже с вопросиком вот сюда:

http://test.com/?aaaaaaa

почему же не вырезается сам вопросик в первом примере ?

siv1987
На сайте с 02.04.2009
Offline
427
#3

Потому что по особеностям под_реврайта они не вырезаются. Для этого надо добавить знак вопроса в конце урл

RewriteRule ^todo\.php$ http://test.com/? [R]

А по вашему примеру вам подсказали выше как будет

RewriteCond %{QUERY_STRING} ^(.+)$

RewriteRule ^todo\.php$ http://site.ru/%1? [R]

H
На сайте с 17.03.2005
Offline
153
#4

сногсшибательные особенности :)

всем спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий