我在为url重写创建一个简单的htaccess时遇到了一些困难。
我想要的是带有3个参数的网址:
www.example.com =>的index.php
www.example.com/module/ =>的index.php?模块= $ 1
www.example.com/module/action/ => ?的index.php模块= $ 1和;行动= $ 16
www.example.com/module/action/1 => ?的index.php模块= $ 1和;行动= $ 2及PARAMS = $ 3'/ P>
我在很多教程中都这样做了,但是当我尝试使用最后一个教程时,它就失败了
RewriteRule ^web/([^/]*)$ index.php?module=$1 [L,QSA]
RewriteRule ^web/([^/]*)/(.*[^/])$ index.php?module=$1&action=$2 [L,QSA]
RewriteRule ^web/([^/]*)/(.*[^/])/([0-9]*)$ index.php?module=$1&action=$2¶ms=$3 [L,QSA]
有人可以帮助我吗?
由于
BOUFFE
答案 0 :(得分:1)
第二个表达式的.*
部分在/action/
之后吞噬了任何内容,因此您需要将其限制为与/
之前的相同,并使用+
而不是*
:
RewriteRule ^web/([^/]+)$ index.php?module=$1 [L,QSA]
RewriteRule ^web/([^/]+)/([^/]+)/?$ index.php?module=$1&action=$2 [L,QSA]
RewriteRule ^web/([^/]+)/([^/]+)/([0-9]+)/?$ index.php?module=$1&action=$2¶ms=$3 [L,QSA]