我想要使用mod_rewrite缩短网址。
它最丑陋的形式如下:
/img.php?i=15&a=92
理想情况下,它看起来像:
/img/15/92
问题有时可能只是:
/img.php?i=15
在这种情况下,此人将进入:
/img/15
所以我想我需要这样的mod_rewrite:
RewriteRule ^/img/(.*)/(.*)$ /img.php?i=$1&a=$2
我认为只有当两个变量都在URL而不仅仅是缩短版本时才会起作用。
如何进行一次适用于两者的单次重写,或者如何在不取消另一次的情况下制作2?
答案 0 :(得分:2)
尝试此规则:
RewriteRule ^img/([0-9]+)(/([0-9]+))?$ img.php?i=$1&a=$3
在.htaccess文件中使用mod_rewrite时,需要从模式中删除每个目录的路径前缀(在本例中为前导/
)。因为mod_rewrite也会这样做,并在重写过程之后将其放回。