首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.htaccess允许来自特定用户代理的所有

.htaccess允许来自特定用户代理的所有
EN

Stack Overflow用户
提问于 2012-08-08 12:40:17
回答 6查看 45.1K关注 0票数 16

我有一个网站,我正在开发,也将被拉到一个网络应用程序。我的.htaccess文件中有以下代码以防止任何不在我允许的IP上的人进行访问:

代码语言:javascript
运行
复制
Order deny,allow
Deny from all
AuthName "Restricted Area - Authorization Required" 
AuthUserFile /home/content/html/.htpasswd 
AuthType Basic
Require valid-user
Allow from 12.34.567.89 
Satisfy Any

问题:我想添加一个规则,该规则还将允许特定的HTTP用户代理访问站点.

如果不是用户代理,我发现这段代码可以重定向:

代码语言:javascript
运行
复制
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !=myuseragent
RewriteRule ^files/.*$ / [R=302,L]

但我似乎想不出如何将其转化为Allow from规则。帮助?

更新

我找到下面的代码来阻止特定的用户代理..。相反,我想说“如果不是myuseragent,那就阻塞”。

代码语言:javascript
运行
复制
<IfModule mod_rewrite.c>
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</ifModule>
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-08 12:46:40

代码语言:javascript
运行
复制
SetEnvIfNoCase User-Agent .*google.* search_robot
SetEnvIfNoCase User-Agent .*yahoo.* search_robot
SetEnvIfNoCase User-Agent .*bot.* search_robot
SetEnvIfNoCase User-Agent .*ask.* search_robot

Order Deny,Allow
Deny from All
Allow from env=search_robot

Htaccess SetEnvIf和SetEnvIfNoCase示例

票数 21
EN

Stack Overflow用户

发布于 2013-01-18 17:44:01

我只想允许一个特定的用户代理,而不是试图阻止所有

这里是我的配置,只允许wget:

代码语言:javascript
运行
复制
SetEnvIf User-Agent .*Wget* wget

Order deny,allow
Deny from all
Allow from env=wget
票数 7
EN

Stack Overflow用户

发布于 2012-08-08 12:48:00

Allow fromRewrite*是来自两个不同Apache模块的指令。

第一个是mod_authz_host,另一个来自mod_rewrite

您可以使用mod_rewrite来做您想做的事情:

代码语言:javascript
运行
复制
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !=myuseragent
RewriteRule .* - [F,L]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11864727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档