.htaccess并重写规则

时间:2013-12-16 21:45:12

标签: .htaccess mod-rewrite url-rewriting

我在为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&params=$3 [L,QSA]

有人可以帮助我吗?

由于

BOUFFE

1 个答案:

答案 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&params=$3 [L,QSA]