用条件重写文件(如果Elseif Else)Htaccess

时间:2014-10-31 09:00:02

标签: apache .htaccess mod-rewrite

我在我的根文件夹中有image.php文件,它有压缩图像和操作路径的功能

因此,默认使用image.php?width=100&height=100&ratio=1:1&watermark=watermark.png&src=image.png

如何重写:

  1. domain.com/image/100/100/image.png(宽度,高度,src)
  2. domain.com/image/100/100/1:1/image.png(宽度,高度,比率,src)
  3. domain.com/image/100/100/1:1/watermark.png/image.png(宽度,高度,     比率,水印,src)
  4. 为了解决第一个条件,我重写了这个:

    RewriteEngine On
    RewriteRule ^image/([^/]*)/([^/]*)/(.*) /image.php?width=$1&height=$2&src=$3 [QSA,L]
    

    但我不知道如何解决其他问题,请帮帮我

1 个答案:

答案 0 :(得分:1)

只需使用3条规则:

RewriteRule ^image/([^/]+)/([^/]+)/([^/]+)$                 /image.php?width=$1&height=$2&src=$3 [QSA,L]
RewriteRule ^image/([^/]+)/([^/]+)/([^/]+)/([^/]+)$         /image.php?width=$1&height=$2&ratio=$3&src=$4 [QSA,L]
RewriteRule ^image/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ /image.php?width=$1&height=$2&ratio=$3&watermark=$4&src=$5 [QSA,L]

如果它捕获第一个规则,则不会执行第二个和第三个规则(感谢[L]标记,它会在catch上停止执行.htaccess)。