如何避免重复/类似的mod_rewrite规则?

时间:2013-01-07 20:18:20

标签: mod-rewrite

我有许多URI,如下所示;

  1. http://www.domain.com/index.php?route=information/information&information_id=2(约)
  2. http://www.domain.com/index.php?route=information/information&information_id=4(帮助)
  3. http://www.domain.com/index.php?route=information/information&information_id=7(联系)
  4. ....
  5. 有没有办法可以避免编写明确但相似的重写规则?

    示例

     RewriteRule    ^contact$    index.php?route=information/information&information_id=2    [NC,L]    # About
    
     RewriteRule    ^help$    index.php?route=information/information&information_id=4    [NC,L]    # Help
    

2 个答案:

答案 0 :(得分:0)

很多可能性。最容易的可能是这样的:

^(.*)$ index.php?route=information/information&information_id=$1

然后处理information_id中的index.php 字符串。确保它只允许可接受的值和404s其他所有。

或者在mod_rewrite级别更具限制性:

^(contact|help|foo)$ index.php?route=information/information&information_id=$1

答案 1 :(得分:0)

如果您要重写的页面数量超过少数,那么关键是要在索引页面中使用单个简单的重写规则与逻辑相结合,以根据请求的URL提供正确的内容。

查看支持网址重写的任何流行CMS的.htaccess和index.php,你会发现你所寻求的。