RewriteCond:如果图像存在,然后显示它,否则生成它
我有一个小的PHP脚本,为论坛签名生成图像(GD)。打电话给他们有一个网址,如:http://www.example.net/img/imgtype_NN.pngRewriteCond:如果图像存在,然后显示它,否则生成它
其中: - imgtype是我想 签名的类型 - NN是
当我把这个网址我想测试,如果图像的ID该图像已经存在于目录中(即,如果它已经被生成),并且在这种情况下我想显示它。
否则我希望我的脚本生成它,然后显示它。
这是我实际的.htaccess:
RewriteCond %{REQUEST_URI} img/(.*)_(.*).png$
RewriteCond %{DOCUMENT_ROOT}/signatures/img/%1_%2.png -f
RewriteRule img/(.*)_(.*).png$ /signatures/img/$1_$2.png [L]
RewriteRule img/(.*)_(.*).png /signatures/signatures.php?signature=$1&id_pop=$2 [L]
图像存储在example.com/signatures/img/和PHP脚本位于example.com/signatures/signatures.php
经过数小时的尝试,我没有完全满足我需要的东西,现在我放弃了,我需要一些帮助。
谢谢你们!
那么,你的代码是不是最好的,所以也许你的问题是由于一些语法错误。
无论如何,你可以试试这个版本(把这个代码在你根 htaccess的)
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/signatures/img/$1_$2\.png -f
RewriteRule ^img/(.+)_(.+)\.png$ /signatures/img/$1_$2.png [L]
RewriteRule ^img/(.+)_(.+)\.png$ /signatures/signatures.php?signature=$1&id_pop=$2 [L]
确保您已启用mod_rewrite的并允许在htaccess的Apache配置
其实我的代码工作... 50%的时间。我试过你的,但我不明白为什么第一个RewriteCond现在已经消失了。 (%{REQUEST_URI})。有了这段代码,它根本不起作用:) – Cyc
'REQUEST_URI'在这里没用,因为你已经在'RewriteRule'中匹配它了。我真的很惊讶你的代码随机工作(50%的时间),这很奇怪。你有没有工作和非工作的网址的例子?另外,你的htaccess在根文件夹?你有其他规则吗?其他子文件夹中是否还有其他htaccess文件? –
请注意,请求的网址是/img/___.png,但文件位于/ signatures/img /这就是为什么我添加了%REQUEST_URI。有没有工作和其他人的网址,但当我F5相同的网址有时它有时不工作。 – Cyc
我不得不动因为他已经在检查现有文件(并重定向到index.php),所以在Wordpress之前有一些规则。所以现在它工作。 谢谢贾斯汀! – Cyc