【问题标题】:RewriteRule doesn't work as I wantRewriteRule 不能按我的意愿工作
【发布时间】:2012-10-11 02:36:19
【问题描述】:

我有一个小问题。 我有一个图像的颜色自定义代码,我使用 RewriteRule 使其更短:

RewriteRule ^cc-(.*?)-(.*?)\.png$ cc.php?col1=$1&col2=$2 [L]

当我输入 localhost/Gen/cc-1122ff-ffffff.png 时,它会正常为我打开。 但是,当我想用​​ PHP 向这个生成的图片添加文本时,我使用另一个 RewriteRule:

RewriteRule ^sig,(.*?),(.*?),(.*?),(.*?),([^,]+),(.*?),([^,]+)\.png$ test.php?nam=$6&font=$5.ttf&bg=$7.png&gn=$1&badg=$2&typ=$3&itm=$4 [L]

然后我转到这个链接:localhost/Gen/sig,y,y,mem,no,Pixel,test,cc-1122ff-ffffff.png 我收到此错误:

Warning: imagecreatefrompng(cc-1122ff-ffffff.png): failed to open stream: No such file or directory in D:\Xampp\htdocs\Gen\test.php on line 31

第二个 RewriteRule 正常工作,例如 localhost/Gen/sig,y,y,mem,no,Pixel,test,white.png 第二个 RewriteRule 不适用于第一个 RewriteRule。为什么?

【问题讨论】:

  • 好吧,首先,第一个以[L] 结尾,将其标识为“最后一个”规则(如果匹配,则不运行其他规则)。在任何情况下,您都应该发布整个相关配置( 或 .htaccess)以帮助查明错误。

标签: php html .htaccess mod-rewrite


【解决方案1】:

imagecreatefrompng 在 URL 是相对的时不发出 HTTP 请求(如cc-1122ff-ffffff.png);它将其视为文件路径。

如果您将 URL 设为绝对 URL,例如 localhost/Gen/sig,y,y,mem,no,Pixel,test,http%3A%2F%2Flocalhost%2FGen%2Fcc-1122ff-ffffff.png,imagecreatefrompng 会将其视为 URL,而不是文件路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多