我正在使用一个使用URL的前端控制器,如下所示:
http://www.domain.com/index.php?action=main.Main, 其中'main'是模块,'Main'是动作。
对于URL重写,我在htaccess中使用这一行:
RewriteRule ^([^/]+)\.html$ index.php?action=$1 [QSA]
这导致http://www.domain.com/main.Main.html
现在,如何用斜杠替换模块和动作之间的点,以便结果如下所示: http://www.domain.com/main/Main?
答案 0 :(得分:2)
然后试试这个:
RewriteRule ^(.*)/(.*)$ index.php?action=$1.$2 [QSA]
答案 1 :(得分:1)
试试这个:
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)/(.*)\.html$ /$1.$2.html [L]
RewriteCond %{REQUEST_URI} \.html$
RewriteCond %{REQUEST_URI} !/.+/
RewriteRule ^([^/]+)\.html$ index.php?action=$1 [L,QSA]
这将收到如下请求:http://www.domain.com/main/something/action/Main.html
并将URI重写为:/index.php?action=main.something.action.Main
答案 2 :(得分:0)
RewriteRule ^(.*)/(.*)$ index.php?module=$1&action=$2 [QSA]