【问题标题】:htaccess Referer Questionhtaccess 推荐人问题
【发布时间】:2011-03-18 02:38:03
【问题描述】:

我有一个场景,我允许任何人从我的网站热链接图像,但它会在检测到引用者时显示水印。

我已经有了水印 PHP GD 脚本,它将获取目录上图像的 url 或完整路径并在其上覆盖水印,但我的问题是这个..

有没有办法设置 htaccess 以仅在检测到非域中的 Referer 时才重写页面?

另外,抛出 PHP 脚本,一旦重写进入根目录中的特定页面,我是否可以得到 尝试 去抛出 $_SERVER['REQUEST_URI'] 以便更轻松地了解他们在不使用 GET 查询的情况下尝试查看的图像?

【问题讨论】:

    标签: php .htaccess mod-rewrite referer


    【解决方案1】:

    使用 RewriteCond 可能最简单。您通常首先检查是否存在Referer 标头,然后将其与允许的值进行比较。但是你也可以使用断言来压缩它:

    RewriteCond %{HTTP_REFERER} ^(?!your.domain.com)(.+)$
    RewriteRule ^(img/.+)$  /watermark.php?url=$1  [L]
    

    如果您不想要url GET 参数,则将其设为PATH_INFO,或使用[L,E=ORIG_REQUEST_URI:$1] 将其设为环境变量。不过,我会避免这种变通方法。

    【讨论】:

    • 谢谢,我对htaccess这方面的东西不太了解哈。
    猜你喜欢
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多