Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Htaccess нишевый редирект
Новая тема
Ответить
цитата
16/08/12 в 20:54
theman
промучавшись 5 часов самостоятельно решил таки спросить у здравомыслящих людей.
что надо сделать.
на сайте есть много нишевых страниц
http://www.domain.com/index.php?page=niche1
http://www.domain.com/index.php?page=niche2
http://www.domain.com/index.php?page=niche3
и так далее
люди попадают на сайт по такому адресу
http://www.domain.com/index.php
или
http://www.domain.com/
хочу проанализировать реферер на наличие в нём слов niche1 или niche2 или niche2 и перенаправить юзера на соответствующую нишевую страничку.
вроде должно было сто раз обсуждаться, но не нашёл конкретного ответа на вопрос.
сам что то комбинировал mor_rewrite'ом, но так желаемого результата и не получил.
подскажите плз люди добрые
цитата
16/08/12 в 21:42
Lexikon
а может это проще с помощью пхп сделать?
да и если что то пробовал код пости сюда, тут специалисты хорошие, подскажут что не так делал.
И кстати вопрос не совсем понятен.
Если серфер приходит по прямому адресу на индекс,
http://www.domain.com/index.php
или
http://www.domain.com/
что там анализировать.
Единственное можно проанализировать есть ли тот или иной нишевый кей в домене реферала.
А если конечно по ссылке вида:
http://www.domain.com/index.php
?page=niche1
то всё же проще с помощью пхп
Или я не прав, поправьте меня.
цитата
16/08/12 в 22:00
Nux
ну если тебе именно на наличие в рефе то самый простой вариант будет например таким
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*niche1.* [NC]
RewriteRule .*
http://www.google.com
[R=301,L]
RewriteCond %{HTTP_REFERER} .*niche2.* [NC]
RewriteRule .*
http://www.google.com
[R=301,L]
итп
хотя лучше и правильнее в твоем случае по параметру.
* вложить все можно в один RewriteCond через |
* редирект 301 нужен или нет сам определяй, статус можно любой поставить.
цитата
17/08/12 в 12:55
theman
Lexikon, надо да, в зависимости от HTTP_REFERER редиректить юзера на определённую пагу. то есть пришёл человек с ресурса, в урле которого было слово
niche1
его надо отправить на страницу
http://www.domain.com/index.php?niche=niche1
и так далее.
при этом все пользователи приходят ко мне на
http://www.domain.com/
вот что пробовал делать
RewriteCond %{HTTP_REFERER} ^http://(.*)niche1 [NC]
RewriteCond %{REQUEST_URI} !index.php(.*)$
RewriteRule .*
http://www.domain.com/index.php?niche=niche1
[R,L]
чёт не пашет :)
без
RewriteCond %{REQUEST_URI} !index.php(.*)$
происходит зацикливание редиректа
Оффтопик:
ну и да, вот полчаса назад подумал, что нафиг в принципе редирект, всё то же самое можно по идее сделать в пхп и просто инклюдить нужную морду.
но тем не менее с редиректом хотелось бы разобраться
цитата
17/08/12 в 14:40
Yacc
Код:
RewriteEngine on
RewriteCond %{HTTP_REFERER} keyword1 [NC]
RewriteRule ^index.php$ index.php?niche=keyword1 [QSA,L]
RewriteCond %{HTTP_REFERER} keyword2 [NC]
RewriteRule ^index.php$ index.php?niche=keyword2 [QSA,L]
#etc
цитата
17/08/12 в 17:35
theman
Yacc, а если трафик будет идти не на
http://www.domain.com/index.php
а на
http://www.domain.com/
?
твой вариант у меня не хочет работать именно потому, видимо, что трафф идёт на
http://www.domain.com/
цитата
17/08/12 в 17:42
Yacc
Код:
#...
RewriteRule ^$ index.php?niche=keyword2 [QSA,L]
цитата
17/08/12 в 17:56
theman
пробую так (не все три инструкции одновременно ессно)
RewriteRule ^$ index.php?niche=keyword2 [QSA,L]
RewriteRule ^/$ index.php?niche=keyword2 [QSA,L]
RewriteRule ^(.*)$ index.php?niche=keyword2 [QSA,L]
не пашет
где глюк? (сервер апач)
цитата
17/08/12 в 18:18
Yacc
Весь .htaccess покажи.
theman писал:
RewriteRule ^$ index.php?niche=keyword2 [QSA,L]
Должно работать даже с index.php. Надеюсь mod_rewrite включен вообще.
theman писал:
RewriteRule ^/$ index.php?niche=keyword2 [QSA,L]
Строка переданная в RewriteRule никогда не начинается со слэша.
theman писал:
RewriteRule ^(.*)$ index.php?niche=keyword2 [QSA,L]
Это должно редиректить весь траф, а не только идущий на морду.
theman писал:
не пашет
Как организован редирект в скрипте?
Убедись что параметры передаются скрипту: вставь в начало index.php
Код:
echo $_SERVER['QUERY_STRING'];
цитата
17/08/12 в 19:01
theman
вот, нашёл таки вариант рабочий
RewriteCond %{HTTP_REFERER} ^http://(.*)keyword [NC]
RewriteRule ^$ /niches.php?tag=keyword [R,L]
спасибо, Yacc ;)
а как исключить редирект для заходов с се?
так будет работать
RewriteCond %{HTTP_REFERER} !^(.*)google [NC]
?
цитата
17/08/12 в 19:36
Yacc
Будет, но это клоакинг чистой воды.
Новая тема
Ответить
Эта страница в полной версии