如何为带有子域名的 URL 编写 RewriteCond

如何为带有子域名的 URL 编写 RewriteCond

我正在尝试通过在 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

相关内容