我正在尝试通过在 htaccess 文件中编写 RewriteCond 规则来禁止某些机器人。如果我添加以下内容,以下规则集是否正确:
## block traffic from particular referrers
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?example-subdomain.parent.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?example-2-domain.net [NC]
RewriteRule (.*) - [F]
如您所见,我希望通过域名而不是 IP 地址进行禁止。如果我删除 (www.) 部分可以吗?
更新:我的问题主要与 RewriteCond 的 URL 正确语法有关。
谢谢
答案1
是的。你可以替换“http://(www\.)?替换为“.*”,只要您不希望该域名出现在合法引荐来源字符串的其他位置。我还建议在 .com 或 .net 后面加上 .*,以防出现任何斜杠或路径。
答案2
如果您知道父域并想阻止它及其所有子域:
^https?://([^.]+\.)*exampledomain\.com