网址重写mod_rewrite

时间:2011-08-27 01:00:13

标签: php apache .htaccess mod-rewrite url-rewriting

我第一次使用mod_rewrite。 我将介绍一个场景。请告诉我是否可能。

假设我有一个包含三个属性表(id,title,parentid)的数据库表。

我访问特定内容的网址如下所示:

example.com/content.php?id=some_value

现在,对于some_value id,title是some_title。是否有可能

example.com/some_title/

可以重命名为url.OR

example.com/content.php?id=some_value&title=some_title

我也可能有以下网址:

example.com/content.php?id=some_value&title=some_title&parenttitle=parent_title

在这种情况下输入的url应该是这样的:

example.com/parent_title/some_title/

如果我没有说清楚,请告诉我。这是我第一次尝试mod_rewrite。因此,即使是一个小信息也会非常有用。

2 个答案:

答案 0 :(得分:3)

以下是您可以在.htaccess文件中添加的内容

  # /id - search an ID
  RewriteRule ^([0-9]+)(/?)$ /content.php?id=$1 [QSA,L]                                                                   

  # /title - search a title
  RewriteRule ^([a-z0-9\-\ ]+)$ /content.php?title=$1 [NC,QSA,L]                                                          

  # /parent/child - search parent and child
  RewriteRule ^([a-z\-\ ]+)/([a-z0-9\-\ ]+)$ /content.php?parent=$1&child=$2 [NC,QSA,L]                                   

  # /id/name - search id and title
  RewriteRule ^([0-9]+)/([a-z0-9\-\ ]+)$ /content.php?id=$1&child=$2 [NC,QSA,L]                                           

  # /search/some_title - search for a title
  RewriteRule ^search/([a-z0-9\-\ ]+)(/?)$ /search.php?q=$1 [NC,QSA,L]    

等...

答案 1 :(得分:-1)

NO! URL重写不生成任何东西只是改变你拥有的东西!如果你要使用它们,你应该在URL中输入id,title或parentid!