* хостинг nix - перенаправить загрузку на домашнюю страницу, если реферер не совпадает - PullRequest
1 голос
/ 03 марта 2010

У меня есть программный пакет, расположенный в корневом каталоге моего сайта. Я бы хотел, чтобы все посетители, пришедшие с других веб-сайтов, сначала увидели домашнюю страницу, прежде чем загружать ее. Как я могу это сделать без использования скрипта?

1 Ответ

2 голосов
/ 03 марта 2010

Apache mod_rewrite может сделать это. Он может проверить переменную HTTP_REFERER и создать перенаправление.

Пример из http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

Описание:

Предположим, мы имеем под http://www.quux -corp.de / ~ quux / некоторые страницы с встроенной графикой GIF. Эти графика хорошая, так что другие напрямую включить их через гиперссылки на их страницы. Нам это не нравится практика, потому что это добавляет бесполезно трафик на наш сервер. Решение:

Пока мы не можем на 100% защитить изображения из включения мы можем как минимум ограничить случаи, когда браузер отправляет заголовок HTTP Referer.

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
RewriteRule .*\.gif$        -                                    [F]

RewriteCond %{HTTP_REFERER}         !^$
RewriteCond %{HTTP_REFERER}         !.*/foo-with-gif\.html$
RewriteRule ^inlined-in-foo\.gif$   -                        [F]

Другой вариант http://articles.sitepoint.com/print/apache-mod_rewrite-examples

RewriteCond %{HTTP_REFERER} !^$  
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC]  
RewriteRule \.(gif|jpg|png)$ http://www.example.com/hotlinked.gif [R=301,L]

Первая строка проверяет, является ли реферер пустым. второе - если это не ваш домен. Третье перенаправит «плохие запросы» на «hotlinked.gif»

...