【问题标题】:Multiple Conditions in .htaccess.htaccess 中的多个条件
【发布时间】:2013-01-28 12:24:30
【问题描述】:

如果用户客户端不是 BOT,我正在尝试将服务器上的图像重定向到 url。 到目前为止,我有:

RewriteCond %{HTTP_USER_AGENT} "Windows" [NC]
RewriteCond %{REQUEST_URI} jpg
RewriteRule ^(.*)$ http://www.myurl.com/$1 [R=301,L] 

但是有些不对劲。可以结合这两个条件吗?

【问题讨论】:

  • 什么告诉你有问题?举例说明您的期望和得到的结果会很有帮助。
  • 怎么了?如果为真,则条件应满足。你得到了什么价值,你期待什么?
  • 如果没有明确的 OR 标志 (httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond),则应将连续的 RewriteCond 与一起。这似乎没有发生吗?
  • 我正在尝试重定向,以便人类看不到图像。 (例如:myurl.com/image.jpg 重定向到 myurl.com/)
  • 几乎我试图绕过新的谷歌图像预览。每当用户单击“全尺寸图像”并在源处看到图像时,它都会重定向。

标签: .htaccess http redirect


【解决方案1】:

您的想法令人钦佩,但基于现实世界机器人行为的逻辑存在缺陷。

我一直在处理网站的安全问题,并且用户代理字符串一直都是伪造的。如果可以选择安装它,我建议使用Mod Security 之类的工具。它基本上是一个 Apache 模块防火墙,它使用可配置的规则集来拒绝不良的访问行为模式。但老实说,如果您对 .htaccess 有问题,像 Mod Security 这样的东西可能太紧张而无法理解。

更好的方法是防止通过mod_rewrite tricks like this 进行热链接。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.mydomain.com/angryman.gif [R,L]

然后,再次阅读您的问题,我不是 100% 确定您想要实现什么目标?也许mod_rewrite 这样的东西可以给你提示如何解决这个问题?祝你好运!

【讨论】:

  • 我并不真正关心伪造用户代理,因为大多数人不会。几乎我试图绕过新的谷歌图像预览。每当用户单击“全尺寸图像”并在源处看到图像时,它都会重定向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2016-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多