在 htaccess 中,我如何阻止每个访问者,包括机器人,除了来自特定域或具有特定用户代理的访问者?
我必须保护每个页面不被访问,除了几个允许的页面。
每个被阻止的人都应该收到自定义通知。
谢谢
在 htaccess 中,我如何阻止每个访问者,包括机器人,除了来自特定域或具有特定用户代理的访问者?
我必须保护每个页面不被访问,除了几个允许的页面。
每个被阻止的人都应该收到自定义通知。
谢谢
首先允许包含禁止消息的公共页面。然后允许具有特定引用者的请求和具有适当RewriteCond
s 的用户代理,并将状态发送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