我有一个Drupal
网站,很少添加新内容。最近,从机器人到各种URL(节点/添加,用户/注册)的访问次数越来越多,这些URL返回Drupal's
“拒绝访问”页面。
我想阻止.htaccess
中对这些网址的访问。我尝试过以下内容并且有效:
<IfModule mod_alias.c>
Redirect 403 /node/add
Redirect 403 /user/register
</IfModule>
但是,机器人仍然可以访问?q=node/add and ?q=user/register
。我尝试在上面的代码中包含?q=
,但没有成功。
如何在.htaccess
?
答案 0 :(得分:3)
您可以使用mod_rewrite
根据查询字符串进行网址操作。你需要类似下面的(未经测试的)代码。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^q=(node/add|user/register)$
RewriteRule ^ - [F,L]
这是做什么的?它匹配任何网址(^
),然后检查查询字符串是否等于q=node/add
或q=user/register
。如果其中任何一个匹配,则不会重写URL(-
),但拒绝访问[F]
并且此迭代的重写将停止[L]
。
答案 1 :(得分:1)
虽然通过.htaccess这样做是完全可行的,但我会重新考虑这种方法并考虑将这些URL放入robots.txt中以供抓取机器人使用。这样,他们就会完全忽略它们,这对SEO来说肯定更健康。
此外,您可以使用全局重定向模块(https://drupal.org/project/globalredirect)来确保仅使用干净的URL。