重定向直接的图像url请求,并在重定向中传递原始url值


Redirect direct image urls requests and pass the original url value in the redirection

假设有人(或Google Images)试图访问

http://null.com/uploads/someimage.jpg(实际上是/上传文件夹中的任何图像)

我希望htaccess将用户重定向到

http://null.com/page/

但是,我需要将原始url(http://null.com/uploads/someimage.jpg)作为POST字符串值传递给重定向目标页面,目标php页面可以使用该值来完成

有可能通过htaccess实现这一点吗?

更新-而且,只有当用户代理是人工操作的浏览器,而不是像谷歌机器人这样的机器人时,才可以让它工作,这样谷歌和其他搜索引擎就可以在没有重定向的情况下适当地抓取图像

你可以试试这个:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !page'.php           [NC]
RewriteCond %{REQUEST_URI} ^/uploads/([^/]+)/?  [NC]
RewriteRule .  page.php?url=uploads/%1 [L]

无提示地图

带或不带尾部斜线的http://null.com/uploads/someimage.jpg

收件人:

http://null.com/page.php?url=uploads/someimage.jpg

假定字符串uploads是固定的,而someimage.jpg可以是任何名称。

脚本名称page.php就是一个例子,也可以是任何名称。替换规则集中的所有实例。

对于永久和可见重定向,将[L]替换为[R=301,L]

这个答案是根据OP评论中的描述:

"。。。将用户重定向到此页面,并将以前的原始url作为post值传递"

其中CCD_ 10是脚本。

注意:替换URL中传递的参数可以使用$_GET$_REQUEST(而不是$_POST)通过PHP捕获。

更新

这是另一个版本:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !page'.php        [NC]
RewriteRule ^(.*)'.jpg   page.php?url=$1.jpg [L]

无提示地图

http://null.com/any/number/of/folders/someimage.jpg

收件人:

http://null.com/page.php?url=any/number/of/folders/someimage.jpg

只有当传入的URL在路径末尾包含扩展名为jpg的文件时,才应用重写规则。