我使用一个PHP script得动态生成透明的Png用作CSS背景查询串,需要RGBa和高强度的价值观。原始脚本,可以发现 在这里,, 我只是增加高强度的支持。

因为背景的网址与PHP查询串不是很漂亮,因为它似乎打破即6透明PNG哈,我想到使用mod_rewrite允许脚本被称为当中的一个。png用这种语法被称为:

/assets/colors/h[0-360 value]_s[0-100 value]_l[0-100 value]_a[0-100 value].png

这将被改写为:

/assets/colors.php?h=[0-360 value]&s=[0-100 value]&l=[0-100 value]&a=[0-100 value]

这里的问题,我遇到:

  • 通过多个变量与mod_rewrite
  • 使用下划线作为分隔

我知道这可以通过一个单一的变量,然后爆炸,它在PHP script,然而我宁愿它是通过阿帕奇。

在此先感谢,如果任何人想要我的高强度启用版本的剧本只是问问。无论如何,我建议你检查出来这是作者的网站。

有帮助吗?

解决方案

mod_rewrite将匹配的东西中的括号()中,然后可以参考这些为1美元,2美元,等于为他们是匹配的。所以你可以用这个来取多个变量只是把它们的内部矫正器。

所以像这样的东西会为你工作,

RewriteRule ^assets/colors/h([0-9]{1,3})_s([0-9]{1,3})_l([0-9]{1,3})_a([0-9]{1,3}).png assets/colors.php?h=$1&s=$2&l=$3&a=$4 

([0-9]{1,3}) 将匹配的1、2或3中的数字0-9行。因此,"3","10"和"100",等等。但它还将就相匹配"999",所以你会需要确保colors.php 文件检查的价值观是在预计的范围,等等。

其他提示

试试这个:

RewriteEngine on
RewriteRule /assets/colors/h([0-9]+)_s([0-9]+)_l([0-9]+)_a([0-9]+).png /assets/col.php?h=$1&s=$2&l=$3&a=$4 [QSA,L]

我不得不变速我的剧本名字,使这项工作。因为我有 Options MultiViews,/资产/颜色/总是理由colors.php 无论mod_rewrite配置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top