除了特定推荐人的访问者外,阻止所有人

时间:2013-03-27 23:31:20

标签: .htaccess

在htaccess中,我如何阻止每个访问者,包括机器人,除了来自特定域或特定用户代理的访问者?

我必须保护每个页面不被访问,除了几个允许的页面。

每个被阻止的人都应该收到自定义通知。

由于

1 个答案:

答案 0 :(得分:4)

首先允许包含禁止消息的公共页面。然后允许具有相应RewriteCond的特定引荐来源和用户代理的请求,并将状态403发送给其他所有

RewriteEngine on

# allow public pages
RewriteRule ^forbidden.html$ - [L]
RewriteRule ^public1.html$ - [L]
RewriteRule ^public2.html$ - [L]

# serve everyone from specific-domain or specific-user-agent
RewriteCond %{HTTP_REFERER} ^https?://www.specific-domain.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^specific-user-agent$
RewriteRule ^ - [L]

# everybody else receives a forbidden
RewriteRule ^ - [F]

ErrorDocument 403 /forbidden.html