Сделал редирект на другой сайт. Но пропадает часть URL ???

Красавчег

Завсегдатай
Регистрация
15 Мар 2010
Сообщения
906
Реакции
313
У news2.ru все ссылки на другие источники имеют вид:
Код:
http://news2.ru/redirect.php?url=http%3A%2F%2Fwww.regnum.ru%2Fnews%2F1533321.html
Для просмотра ссылки Войди или Зарегистрируйся

Мне нужно было сделать редирект со своего сайта вот на такой урл. Добавил в .htaccess следующее:
Код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^my1page.html http://news2.ru/redirect.php?url=http\%3A\%2F\%2Fwww.regnum.ru\%2Fnews\%2F1533321.html [R=301,L]
</IfModule>

То есть, мне нужно было чтобы редиректило на:
Код:
http://news2.ru/redirect.php?url=http%3A%2F%2Fwww.regnum.ru%2Fnews%2F1533321.html

А получается, что меня редиректит на:
Код:
http://news2.ru/http%3A%2F%2Fwww.regnum.ru%2Fnews%2F1533321.html

То есть из урла исчезает "redirect.php?url=" Что за мистика такая? Как поправить?
 
Кажется в htaccess не учитываются параметры, идущие рядом с вопросительным знаком. Для обхода этой проблемы нужно юзать {QUERY_STRING}, но могу ошибаться.
У вас статичный редирект? Ну тоесть постоянно редиректится на одну и ту же страницу на удалённом домене? Или всё-таки редирект надо делать в зависимости от исходного адреса?
 
ShaDeRzz, не совсем понимаю, что значит "статичный редирект"

Мне нужно, чтобы при открытии конкретно страницы my1page.html на моем сайте, происходил редирект конкретно на урл:
Код:
http://news2.ru/redirect.php?url=http%3A%2F%2Fwww.regnum.ru%2Fnews%2F1533321.html
 
Статичный - я имел ввиду, что редирект будет один, а динамичный - это когда в зависимости от страницы - редиректы на разные урлы... как-то так...
В вашем случае не увидел ничего подозрительного, кроме отсутствия символа окончания условия - $ и наличия символов % которые в Rewrite Rule обычно используются для подстановки значений.
может быть так получится?:

Код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^my1page.html$ http://news2.ru/redirect.php?url=http://www.regnum.ru/news/1533321.html[R=301,L]
</IfModule>
 
Так-то получается, но мне нужно чтобы редирект шел именно на:
Код:
http://news2.ru/redirect.php?url=http%3A%2F%2Fwww.regnum.ru%2Fnews%2F1533321.html
Символы % я экранирую обратным слешем и это работает. Но часть урла пропадает и причина проблемы так и не найдена.
 
часть урл никуда не пропадает, "redirect.php?url=" вырезается уже на стороне news2.ru.
чтобы убедиться в этом, вот напишем такой код в хтаксесс и зайдем на страницу my2page.html:
Код:
RewriteEngine On
RewriteRule ^my2page.html http://news2222222.ru/redirect.php?url=http\%3A\%2F\%2Fwww.regnum.ru\%2Fnews\%2F1533321.html [R=301,L]

то есть редиректим не на ньюс2ру, а на несуществующий ньюс2222222ру, чтобы ничего не вырезалось.

получаем редирект на
Код:
http://news2222222.ru/redirect.php?url=http%253A%252F%252Fwww.regnum.ru%252Fnews%252F1533321.html

это не решение, просто как направление куда копать.
 
Назад
Сверху