Apache - mod_rewrite RewriteRule问题

时间:2008-10-09 18:56:17

标签: regex apache mod-rewrite

我的mod_rewrite规则存在一些问题。我想要处理三种不同的网址模式。

  1. http://example.com/%module%/%view%-%args%.html
  2. http://example.com/%module%/%view%.html
  3. http://example.com/%module%
  4. 以下mod_rewrite规则无法正常工作。此外,我的问题是查询(例如:user.html?foo = bar)没有效果。

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^([0-9A-Za-z_-]*)/?([0-9A-Za-z_]+)-?([0-9A-Za-z_,]*)\.html$ index.php?__module=$1&__view=$2&__argv=$3
    
        RewriteRule ^([0-9A-Za-z_-]*)/?$ index.php?__module=$1&__view=&__argv=
    </IfModule>
    

1 个答案:

答案 0 :(得分:3)

对于查询字符串,使用QSA(查询字符串追加)标记规则。

您要配置的内容称为“前端控制器”,其中已经有很多现成的。也许你应该看看一些流行的PHP框架,并采用一个适合你的框架。