Внимание! В связи с устареванием топика эта страница была взята из кэша.
|
ultimate
Зарегистрирован: 17.08.01
Сообщения: 184
|
Добавлено: 08/04/04 в 00:16
|
|
нужно пришедшие хиты с определенных трейдеров (доменов) редиректить на определенную страницу.. в хтассесе пишу следующее: ----- RewriteEngine On RewriteCond %{HTTP_HOST} yahoo\.com [NC] RewriteRule (.*) http://домен.ком/$1 [R,L] ----- и нифига блин не выходит =[ все подряд сбрасывает без разбора на домен.ком.. где накосячил?
|
K началу
|
|
|
Erotix
Зарегистрирован: 19.04.03
Сообщения: 956
|
Добавлено: 08/04/04 в 01:38
|
|
ultimate писал: | нужно пришедшие хиты с определенных трейдеров (доменов) редиректить на определенную страницу.. в хтассесе пишу следующее: ----- RewriteEngine On RewriteCond %{HTTP_HOST} yahoo\.com [NC] RewriteRule (.*) http://домен.ком/$1 [R,L] ----- и нифига блин не выходит =[ все подряд сбрасывает без разбора на домен.ком.. где накосячил? |
сравни с правильным :
Цитата: | ----- RewriteEngine On RewriteCond %{HTTP_HOST} yahoo\.com [NC] RewriteRule .* http://домен.ком [R,L] -----
|
|
K началу
|
|
|
ultimate
Зарегистрирован: 17.08.01
Сообщения: 184
|
Добавлено: 08/04/04 в 10:29
|
|
сравнил только что даже на практике.. только вот теперь редирект перестал вообще работать. почему?
|
K началу
|
|
|
URRY
Зарегистрирован: 05.01.03
Сообщения: 76
|
Добавлено: 08/04/04 в 11:18
|
|
попробуй так
Код: | RewriteEngine On RewriteOptions inherit # это вроде не нужно, не помню уже # list of referer domains redirect from RewriteCond %{HTTP_REFERER} ^.*domain.*$ [NC,OR] RewriteCond %{HTTP_REFERER} ^.*domain.*$ [NC] # last domain in this list (таких списков может быть несколько) # for referers from list redirect to this domain RewriteRule ^(.*)$ http://redirect.com/ [R,NC,L] # all other users redirect to this domain (эту строку использовать необязательно) RewriteRule ^(.*)$ http://redirect.com/ [R,NC,L]
|
|
K началу
|
|
|
ultimate
Зарегистрирован: 17.08.01
Сообщения: 184
|
Добавлено: 08/04/04 в 11:26
|
|
получил ошибку 500.. буду пинать хостера. доложу о результатах
|
K началу
|
|
|
Sexlorum
Зарегистрирован: 15.03.03
Сообщения: 94
|
Добавлено: 08/04/04 в 12:59
|
|
RewriteEngine On RewriteCond %{HTTP_REFERER} yahoo.com/(.*) [OR] RewriteCond %{HTTP_REFERER} tyhoo.com/(.*) RewriteRule ^(.*)$ http://домен.ком/$1 [R,L]
(RewriteRule ^(.*)$ http://домен.ком/?$1 [R,L] - лучше)
а под этим выражением-то что? http://домен.ком/?yahoo.com/searchcriteria...
|
K началу
|
|
|
URRY
Зарегистрирован: 05.01.03
Сообщения: 76
|
Добавлено: 08/04/04 в 14:23
|
|
ultimate писал: | получил ошибку 500.. буду пинать хостера. доложу о результатах | ты б показал в каком виде использовал это дело, возможно, что-то неправильно написал... можешь реальные имена доменов изменить тот вариант работал 100%... я проверял когда-то
вот для справки еще: ^ - символ начала строки $ - символ конца строки .* - любая группа символов (т.е., если указываешь имя домена с зоной, тогда так - ^.*domain.com.*$)
все группы RewriteCond нужно завершать строкой RewriteRule с указанием флага [ L ] (если списков несколько)
|
K началу
|
|
|
ultimate
Зарегистрирован: 17.08.01
Сообщения: 184
|
Добавлено: 09/04/04 в 09:56
|
|
2URRY, вобщем то что ты дал - сработало, в .htaccess сейчас следующее:
RewriteEngine On RewriteCond %{HTTP_REFERER} ^.*cj1.*$ [NC,OR] RewriteCond %{HTTP_REFERER} ^.*cj2.*$ [NC] RewriteRule ^(.*)$ http://домен.ком/$1 --- но почему-то работает только при переходе с домена 3го уровня, т.е. blabla.cj1.com, если захожу на www.cj1.com, оттуда набераю свой урл, то ничего не происходит.. почему? HTTP_HOST пробовал заменить вместо HTTP_REFERER - безтолку.
|
K началу
|
|
|
URRY
Зарегистрирован: 05.01.03
Сообщения: 76
|
Добавлено: 09/04/04 в 18:42
|
|
дело в том, что когда ты заходишь на www.cj1.com и оттуда набираешь свой урл (в адресной строке), то у тебя не передается реферер, чтоб он передался, на сайте www.cj1.com должна быть ссылка на твой урл, при переходе по которой будет редирект... на blabla.cj1.com ссылка по-видимому есть.
твое правило для редиректа (RewriteRule) ограничено условиями (RewriteCond) в которых сказано, что правило срабатывает только при соблюдении этих условий т.е., если существует реферер (.*cj1.* или .*cj2.*)
для всех остальных рефов и для тех у кого рефов нет, правил никаких не указано, потому и редиректа не происходит чтобы этих товарищей тоже куда-нибудь отправлять (в др. место), поставь у себя в конце строки с RewriteRule такую штуку - [L] или даже [R,NC,L] это флаги --- L - означает, что это последнее правило для указанных условий, все RewriteRule после этого не будут иметь к нему отношения и к набору условий (RewriteCond) также. NC - говорит о том, что не нужно учитывать регистр символов R - это редирект, без него происходит только перезапись ---
после этого можешь написать еще один RewriteRule и это правило будет срабатывать для всех (если не указаны ограничивающие условия)
и еще, убери эту конструкцию - $1 в урле куда редиректишь $1 - это переменная, которая принимает значение в первых указанных круглых скобках, в общем-то их тоже надо убрать, достаточно только ^.*$
-------------------- это интересно -------------------- http://sitemaker.ru/technologies/webserver/mod_rewrite/ http://sitemaker.ru/technologies/webserver/mod_rewrite2/ http://sitemaker.ru/technologies/webserver/mod_rewrite3/ http://sitemaker.ru/technologies/webserver/mod_rewrite4/
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html http://www.egoroff.spb.ru/portfolio/apache/rewriteguide.html
|
K началу
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |
Внимание! В связи с устареванием топика эта страница была взята из кэша.
|