【问题标题】:.HTACCESS and Redirecting.HTACCESS 和重定向
【发布时间】:2013-12-30 20:14:02
【问题描述】:

我有这个 .htaccess 文件,它将 .PNG 重定向到 .PHP 文件(用于动态图像),但是,我不想对文件夹中的所有 .PNG 执行此操作,因为我想放置我的页面上的普通静态图像,我不能,因为它会创建一个动态图像。

RewriteEngine On
RewriteRule ([a-zA-Z\0-9\s]+)\.png image.php?name=$1

我对 .HTACCESS 不是很有经验,因此我们将不胜感激,谢谢。

【问题讨论】:

  • 服务器如何知道您是否要转发它? PNG 的文件名有什么不同?
  • 你不能添加另一个规则来将.pngx重定向到.png,然后将你的静态文件保存为pngx吗?
  • @DanGoodspeed 我在想是否可以从另一个目录获取动态图像?
  • 如果它们在另一个目录中,只需将 .htaccess 文件放在该目录中即可。

标签: php regex apache .htaccess png


【解决方案1】:

如果文件!-f 或目录!-d 存在,您可以添加RewriteCond 跳过以下RewriteRule。我已将两者都包含在内以供您参考 - 您可能只想使用 !-f 一个。

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ([a-zA-Z\0-9\s]+)\.png image.php?name=$1 [L]

如果您有一个创建缩略图图像的 php 脚本,这将很有用。 将您的 html 页面指向缩略图 .png 应该 存在的位置,如果不存在,则重定向到创建它的 .php 页面,然后将其写入磁盘并直接提供。下一个请求将点击RewriteCond 并找到匹配的缩略图并直接提供它,绕过重写。

【讨论】:

  • 我在末尾添加了 [L] 标志,使其成为阻止进一步重写(如果有)的最后一条规则。
猜你喜欢
  • 2017-07-15
  • 2014-10-19
  • 2014-07-19
  • 2012-02-03
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
  • 2015-03-20
相关资源
最近更新 更多