我已经创建了一个构建图像的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但是没有办法实现自动化吗?
答案 0 :(得分:4)
可能是最简单的解决方案:
RewriteRule ^image-(.+)\.png$ image.php?params=$1
然后在PHP中解析$_GET['params']
。
答案 1 :(得分: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]