【问题标题】:dynamic jpg urls with .htaccess带有 .htaccess 的动态 jpg url
【发布时间】:2011-11-04 22:25:01
【问题描述】:

我希望根据 url 中的文件名使用 htaccess 为网页动态提供图像。通常,我在整个网站中使用嵌套目录结构来提供基于伪目录名称的动态 url。在这种情况下,我只想查询文件名(无扩展名)并将其提供给 PHP 脚本,以便:

/images/foo.jpg

变成

/images/index.php?image=foo

同时也让这个目录中现有的 jpg 图像被提供。我相信这很容易,因为我已经能够使用 htaccess 完成一些非常酷的事情,但还不是这个。谢谢。

【问题讨论】:

  • “同时也让该目录中现有的 jpg 图像被提供”是什么意思?这是否意味着 foo.jpg 不存在并且应该被重定向到 index.php 但 /images/ 中确实存在的图像应该像往常一样提供?
  • 完全正确。我需要创建从 php 获取的“幻影”jpg,并让原件照原样存在。

标签: .htaccess mod-rewrite


【解决方案1】:

像这样:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^images/(.*)\.(jpg|png|jpeg|gif)$ /images/index.php?image=$1 [NC,L]

注意:如果您需要扩展名,请使用$2

【讨论】:

  • 这在文件存在时有效,但当不存在时,我得到一个 404...我希望能够创建“幻影”jpg 并提供原始文件,而不必从 php .
  • 所有图片都保存在images文件夹中?如果你想创建一个“幻影”图像,那就不同了。我更新了我的票。您 index.php 是否显示正确的图像标题?
  • 不,有些是有些不是...我想为我的文件系统提供 seo 友好的图像名称,它是字母数字(即 DR382U1.jpg)并且位于其他地方。
  • 知道了,我在我的网站上使用了这个规则。我的 index.php 生成一个虚拟图像。图片所在的另一个文件夹在哪里?
猜你喜欢
  • 2022-11-07
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
相关资源
最近更新 更多