是否可以接受来自一个域的流量,理想情况下使用.htaccess文件? 我希望我的网站只能通过我拥有的其他网站上的链接访问。
我知道如何阻止一个引用域,但不是所有域
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} otherdomain\.com [NC]
RewriteRule .* - [F]
这是我的完整重写代码:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !domain\.co.uk [NC]
RewriteRule .? - [F]
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
我认为它有效,但没有任何资产被加载,当我点击另一个链接时出现500错误。
答案 0 :(得分:2)
这样做:
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !alloweddomain\.com [NC]
RewriteRule .? - [F]
第一个RewriteCond
检查引荐来源不为空。第二个检查它不包含字符串yourdomain.com
,第三个检查它不包含字符串alloweddomain.com
。如果所有这些检查都通过,则RewriteRule
会触发并拒绝请求。
(允许空引用通常是一个好主意,因为浏览器可以出于各种原因生成它们,例如: