2016-06-30 3 views
2

Я пытался заблокировать доступ от всех, кто пытается увидеть страницу .php, не исходя из моей конкретной ссылки отслеживания.Только разрешить пользователям от конкретного реферера (перенаправить остальные) - HTACCESS

Я хочу, чтобы, если они не пришли из моей ссылки, они будут перенаправлены на другой сайт. Я попытался с помощью .htaccess метод следующим образом:

RewriteEngine On 
RewriteBase/

# allow these referers to passthrough 
RewriteCond %{HTTP_REFERER} ^http://subdomain.domain.com 
RewriteRule^- [L] 

# redirect everything else 
RewriteRule^http://anotherDomain.com/ [R,L] 

это потому, что http://subdomain.domain.com является отслеживание URL, который перенаправляет на website.php, но, кажется, не работает, и несмотря ни на какие ссылающейся, или даже вводить URL-адрес для website.php непосредственно на панели инструментов принимает пользователя на website.php.

, что я хочу, чтобы добиться того, что только subdomain.domain.com могут видеть website.php

заранее спасибо.

ответ

3

Вы можете сделать это с помощью order deny,allow, поместите это в ваш .htaccess:

order deny,allow 
deny from all 
allow from subdomain.domain.com 

Это будет отрицать доступ для всех, если они не посещают через subdomain.domain.com

Тогда для перенаправления пользователей, которые не придут из subdomain.domain.com вы можете использовать:

RewriteCond %{HTTP_HOST} !^www\.subdomain.domain\.com [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^/?(.*)   http://www.example.com/$1 [L,R,NE] 

Для Apache 2.4:

Вы можете использовать директиву IF, так как вы используете 2.4:

<If "%{HTTP_HOST} != 'www.subdomain.domain.com'"> 
Redirect/http://www.example.com/ 
</If> 

и для order deny,allow добавить следующее вокруг него:

<Limit GET> 
</Limit> 
+0

ммм .. не работает, я получаю 403 для каждого запроса, даже если он поступает из subdomain.domain.com – gasguirre

+0

Какую версию Apache вы используете? – Lag

+0

httpd \t 2.4.18 (Unix) – gasguirre

 Смежные вопросы

  • Нет связанных вопросов^_^