我一直试图阻止尝试查看.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是一个重定向到website.php的跟踪网址,但它似乎无法正常工作,尽管有任何推荐人,甚至直接在工具栏中输入网站的网址都是用户to website.php。
我想要实现的是只有来自subdomain.domain.com的用户才能看到website.php
提前感谢。
答案 0 :(得分:5)
您可以使用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>
答案 1 :(得分:0)
RewriteEngine On
RewriteCond "%{HTTP_REFERER}" "!your-valid-referer.example.com"
RewriteRule ^.*$ - [F]
RewriteCond
-做以下比较:"%{HTTP_REFERER}"
-请求时的当前referer;反对:"!your-valid-referer.example.com"
-有效的引荐来源;如果不是,则:RewriteRule ^.*$
-不管它是什么; [F]
-不要授予访问权限。分配HTTP状态代码403
或Forbidden
。RewriteEngine On
RewriteCond "%{HTTP_REFERER}" "!subdomain.domain.com"
RewriteRule ^ http://anotherDomain.com/ [R,L]