我已经通过htaccess文件编写了一个动态缩略图创建器,以查看所请求的文件是否存在,以及是否将用户发送到php页面来创建它。我的htaccess文件如下所示:
# Check the formatting (this works)
RewriteCond %{SCRIPT_FILENAME}%{QUERY_STRING} /([a-zA-Z0-9-]+).(jpg|gif|png)w=([0-9]+)&h=([0-9]+)(&c=(true|false))
# Only forward to thumbnail.php if file doesn't exist
#RewriteCond %{REQUEST_FILENAME} !-f #this works but not for the correct filename!
RewriteCond %1-%2-%3-%4-%6.jpg !-f # Doesn't work!!!
# If file doesn't exist, send here: (this works)
RewriteRule ^.*$ thumbnail.php?file_name=%1&type=%2&w=%3&h=%4&c=%6
我对文件存在的检查似乎不起作用...使用%{REQUEST_FILENAME}
的旧版本有效,但这不是我需要检查的正确文件名。我已经验证新文件%1-%2-%3-%4-%6.jpg
具有正确的输出,但不会触发条件!
基于此网址:
this-is-the-image-name.gif?w=200&h=100&c=true
htaccess文件应检查此文件是否存在:
this-is-the-image-name-gif-200-100-true.jpg
缩略图和htaccess文件都在同一个文件夹中,但此文件夹未知,无法进行硬编码。它需要完整的检查路径吗?如果是这样,我如何获得完整路径,但使用我的自定义文件名?
用这个把头发拉出来...... 请帮忙!谢谢。
答案 0 :(得分:0)
您可以使用PHP脚本替换传统的“404错误”页面:
ErrorDocument 404 thumbnail.php
然后,您可以使用PHP检索请求的URL:
$url = $_SERVER["REQUEST_URI"];
可以使用preg_match函数检索参数。