帮助RewriteRules

时间:2011-01-18 01:54:36

标签: php apache mod-rewrite

是否可以重写这些:

news.php?id=1004
news.php?action=add
news.php?action=edit&newsid=1004

news/1004
news/add
news/edit/1004

只有一个RewriteRule?

1 个答案:

答案 0 :(得分:2)

我不确定一条规则,但是您应该可以使用这样的内容来引用ID号或操作。

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteRule news/([0-9]+)$ news.php?id=$1
  RewriteRule news/add$ news.php?action=add
  RewriteRule news/edit/([0-9]+)$ news.php?action=edit&newsid=$1
</IfModule>

这可以通过以下方式浓缩:

# Rewrite news/actionterm/idnum -> news.php?action=actionterm&id=idnum    
RewriteRule news/([^/])/([0-9]+) news.php?action=$1&id=$2

假设查看和编辑的参数都可以是id =而不是id =和newsid =。