URL-адрес перенаправления с использованием .htaccess (несколько специальных символов)

Здесь много сообщений о перенаправлении с помощью htaccess, но я не могу найти ни одного для себя.

Я хочу перенаправить следующий URL на страницу 404. Но я сталкиваюсь с проблемами из-за специальных символов в нем.

Я хочу, чтобы следующие URL-адреса были на моей странице 404.

http://www.site1.com/i.php?id=303&vis=1&url=http://www.site2.com http://www.site1.com/cgi-bin/a2/out.cgi?id=49&u=http: //www.сайт 2.com

на http://www.site1.com/404

Кто-нибудь может пролить свет?


person user1627496    schedule 27.08.2012    source источник
comment
пожалуйста, опубликуйте код, который вы пробовали   -  person Oussama Jilal    schedule 27.08.2012
comment
Я попробовал приведенный ниже вариант, но безрезультатно RewriteCond %{HTTP_REFERER} ^http://(www\.)?site1.\com/i\.php?id=303&vis=1&url=www\.site2.\com/ [NC] RewriteRule .* site1.com/404 [П, Н]   -  person user1627496    schedule 27.08.2012


Ответы (1)


Попробуйте эти правила:

RewriteEngine on

RewriteCond %{QUERY_STRING} ^id=303&vis=1&url=http://www\.site2\.com$
RewriteRule ^i\.php$ /404? [L,R=404]

RewriteCond %{QUERY_STRING} ^id=49&u=http://www\.site2\.com$
RewriteRule ^cgi-bin/a2/out\.cgi$ /404? [L,R=404]
person Oussama Jilal    schedule 27.08.2012
comment
Кажется, что R = 404 вызывает ошибку внутреннего сервера, вам придется изменить его на R = 302, а затем сгенерировать ответ заголовка 404 на странице ошибки 404. - person Oussama Jilal; 27.08.2012
comment
R=4XX поддерживается только начиная с Apache 2.X. - person Nathan Stretch; 18.02.2013