.htaccess 阻止直接访问URL(不是文件)

.htaccess 阻止直接访问URL(不是文件),.htaccess,drupal-7,plesk,.htaccess,Drupal 7,Plesk,一个drupal站点正在我的(Plesk 10.4)服务器上推动超过配额的国际流量,看起来其中大部分(每月约250000次访问)是直接访问URL/user/register。我们已经在使用botcha模块过滤spambot注册,但是这种方法导致每个bot都有两个完整的页面。而当Drupal 我认为一个.htaccess规则可能是可行的,它会返回对该URL的403响应,除非引用者来自该站点,但我的.htaccess fu并不强大,我只能找到阻止图像热链接的示例 我需要添加什么以及在哪里添加 谢谢,

一个drupal站点正在我的(Plesk 10.4)服务器上推动超过配额的国际流量,看起来其中大部分(每月约250000次访问)是直接访问URL/user/register。我们已经在使用botcha模块过滤spambot注册,但是这种方法导致每个bot都有两个完整的页面。而当Drupal

我认为一个.htaccess规则可能是可行的,它会返回对该URL的403响应,除非引用者来自该站点,但我的.htaccess fu并不强大,我只能找到阻止图像热链接的示例

我需要添加什么以及在哪里添加

谢谢,
Richard

您将对照HTTP引用进行检查。这并不能保证阻止来自其他站点的访问,因为该字段很容易伪造。但是,您可以尝试将其添加到htaccess文件中(高于已有的任何规则):


谢谢@Jon,我把它放进域的vhost.conf文件中,并对我们进行了繁琐的Plesk forces更新。没有任何东西损坏,但我似乎仍然能够直接访问该页面。是否仍然适用于您?单击我刚刚发布的链接会得到一个200响应,其中stackoverflow.com作为引用者:-(您必须将Jon Lin answer中的字符串放在域web根目录中,而不是vhost.conf中。是的,我所针对的目录不是实际的物理目录(在这种情况下,vhost.conf应该可以工作).htaccess中的代码位于将所有其他虚拟路径指向index.php的代码之前。
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?your-domain\com/ [NC]
RewriteRule ^user/register - [L,F]