1

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

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

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

谢谢

4

1 回答 1

4

首先允许包含禁止消息的公共页面。然后允许具有特定引用者的请求和具有适当RewriteConds 的用户代理,并将状态发送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
于 2013-03-27T23:58:38.000 回答