【问题标题】:htaccess redirect raw image viewinghtaccess 重定向原始图像查看
【发布时间】:2012-04-01 01:07:02
【问题描述】:

我想将任何直接查看的图像重定向到处理程序页面:

如果 http://mysite.com/pics/filename.jpg(或 www.)在 URL 中 然后重定向到 http://mysite.com/pics/index.php?img=filename.jpg(没有 www)

但是,如果图像被任何地方的网页或移动 html5 应用程序调用,那么它应该按正常方式提供。

因此,如果 mypage.html 包含带有直接照片的 img 标签,它将显示在该页面中。但如果 http://mysite.com/pics/filename.jpg 是 url,那么它应该重定向。换句话说,如果文件被直接查看,它应该重定向到包装页面,但如果它已经在包装页面中(任何地方),它不应该重定向。

我见过各种重定向代码,但没有一个引用 if 语句的可见 url,所以我不知道该怎么做。我找到并尝试过的那些不起作用,要么重定向所有请求,要么什么都不做

谢谢!

【问题讨论】:

    标签: image .htaccess redirect


    【解决方案1】:

    这将为您处理热链接到您网站上的图像的人:-

    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysite.com [NC]
    RewriteRule ([^/]+)\.(jpg|jpeg|png|gif)$ pics/index.php?img=$1.$2 [NC,L,R]
    

    至于您的移动 HTML5 应用程序,您将需要一些其他方式来向您的网络服务器识别它。因此,当它要求图像时,您将不得不查看表示它的引用者是什么。你应该很容易写一个 PHP 脚本来告诉你,然后你只需要添加到上面的代码中来包含它。

    西蒙

    【讨论】:

    • 嗨,西蒙,我认为这与我的要求相反。当有人单击直接指向 jpg 文件的链接时,我希望它使用 ?img=filename.jpg 重定向到 php 文件,这样我就可以包装它。并且应用程序和网站会将 jpg 嵌入到 html 页面中,因此图像已经被包装。
    • @K'shin 为了弄清楚这一点,您想重定向用户而不是重写链接吗?
    • 正确,地址栏中的链接对我来说无关紧要,当有人直接点击图片网址时,我希望它将他们重定向到包装图片的 php 页面,以便他们得到它“漂亮”不仅仅是浏览器角落里的 jpg。
    • @K'shin 我已将 R 标志添加到规则中,它应该按照您现在的要求进行操作。
    • 我已将代码放在根目录的 .htaccess 文件中,仅将“mysite”更改为我的站点。不幸的是,当我转到 pics 目录中的 jpg 时,它似乎没有做任何事情,我只是在浏览器的角落看到 jpg。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2015-07-27
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多