Разрешить только пользователям из определенного реферера (перенаправить остальные) - HTACCESS
Я пытался заблокировать доступ для всех, кто пытается увидеть А.php страница без перехода по моей конкретной ссылке отслеживания.
Я хочу, чтобы, если они не приходят по моей ссылке, они были перенаправлены на другой сайт. Я попробовал использовать .метод 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-адрес отслеживания, который перенаправляет на сайт.php но похоже, что не работает, и несмотря ни на какой реферер, или даже набрав url для вебсайт.php непосредственно в панели инструментов ведет пользователя на сайт.РНР.
Чего я хочу добиться, так это только от subdomain.domain.com пользователи могут видеть веб-сайт.php
Заранее благодарю.
1 ответ:
Вы можете сделать это с помощью
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>