.htaccess规则将图像文件的直接视图重定向到页面,图像作为查询字符串传递



如果有人试图直接访问此文件夹中的任何图像,我希望:https://www.example.com/map-images/example-image-123.jpg

它们被重定向到一个页面,将图像名称作为查询字符串传递,并在此处结束:https://www.example.com/map-image-viewer?imagename=example-图123.jpg

澄清:在地图图像查看器页面上,我需要能够在iframe中使用example-image-123作为src(尽管我不允许直接访问地图图像文件夹中的图像(。请注意,我不想用Forbidden标志阻止图像访问,因为我确实希望图像能够被搜索引擎索引。不确定这是否可能?

更新:我尝试了以下操作,它确实将特定图像的查看重定向到地图图像查看器页面,并将图像名称作为查询参数传递但是,该图像不能再用作地图图像查看器页面上iframe中的src

RewriteCond %{REQUEST_URI} ^/map-images/(.*)$
RewriteRule ^(.*) /map-image-viewer?imagename=%1 [R=301,L]

我可能遗漏了一些显而易见的东西,但如果能得到帮助,我将不胜感激:(

您几乎已经设置好了,只需在规则中再添加一个条件。我添加了一个条件来检查条件,如果查询字符串为null,那么只有通过它重定向,我们才不会陷入无限重定向循环,在这里修复了OP的尝试。

请确保在测试任何URL之前清除浏览器缓存。

RewriteEngine ON
RewriteCond %{REQUEST_URI} ^/map-images/(.*)/?$ [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ map-image-viewer?imagename=%1 [R=301,L]

最新更新