1

我制作了一个构建图像的 php 脚本,我想使用 htaccess 获取一个不错的 url

该脚本根据一些变量构建图像:

例如:

All options given
php url:  image.php?width=300&height=400&color=red&var1=something&var2=somethingelse
nice url: image-w300-h400-cred-v1something-v2something.png

Few options given
php url:  image.php?var1=something&color=black
nice url: image-v1something-cblack.png

我知道如何为每个组合构建一个 rewriteRule,但没有办法自动化吗?

4

2 回答 2

4

可能是最简单的解决方案:

RewriteRule ^image-(.+)\.png$ image.php?params=$1

然后用 PHP 解析$_GET['params']

于 2012-08-07T08:40:13.857 回答
1

如果你总是把你的参数放在相同的顺序,你可以使用这种规则:

RewriteRule 
    ^image(-w[0-9]+)?(-h[0-9]+)?(-c[a-z]+)?(-v1[A-Za-z0-9-]+)?(-v2[A-Za-z0-9-]+)?\.png$ 
    image.php?width=$1&height=$2&color=$3&var1=$4&var2=$5 [L]

编辑 :

RewriteRule 
    ^image(-w([0-9]+))?(-h([0-9]+))?(-c([a-z]+))?(-v1([A-Za-z0-9-]+))?(-v2([A-Za-z0-9-]+))?\.png$ 
    image.php?width=$2&height=$4&color=$6&var1=$8&var2=$10 [L]

编辑 2 以防止 $10 问题:

RewriteRule 
    ^image(?:-w([0-9]+))?(?:-h([0-9]+))?(?:-c([a-z]+))?(?:-v1([A-Za-z0-9-]+))?(?:-v2([A-Za-z0-9-]+))?\.png$ 
    image.php?width=$1&height=$2&color=$3&var1=$4&var2=$5 [L]
于 2012-08-07T08:51:49.353 回答