使用php进行Web开发时的URL帮助

时间:2011-06-04 10:34:20

标签: php .htaccess url-rewriting

我在数据库中保存了类别, 离。

    Category 1
    Category 2
             .
             .
    Category 10

enter image description here

现在我的菜单是,

<ul>
<li><a href="/home/Category_page.php?id=1" >Category name</a></li>
<li><a href="/home/Category_page.php?id=2" >Category name</a></li>
<li><a href="/home/Category_page.php?id=3" >Category name</a></li>
<li><a href="/home/Category_page.php?id=4" >Category name</a></li>
<li><a href="/home/Category_page.php?id=5" >Category name</a></li>
<li><a href="/home/Category_page.php?id=6" >Category name</a></li>
<ul>

我想这样做

<ul>
<li><a href="/home/Category_name" >Category name</a></li>
<li><a href="/home/Category_name" >Category name</a></li>
<li><a href="/home/Category_name" >Category name</a></li>
<li><a href="/home/Category_name" >Category name</a></li>
<li><a href="/home/Category_name" >Category name</a></li>
<li><a href="/home/Category_name" >Category name</a></li>
<ul>

类别名称会有所不同,在href中只给出了类别名称,在.htaccess中我可以重定向到另一个页面,比如

  

.htaccess中的规则: -

 RewriteRule ^home/([a-zA-Z0-9_-]+)$ /details.php/$1.php

在详细信息页面上,我应该检查数据库中的类别名称以获取详细信息吗?

另外两种选择是什么? 我不想在网址中使用类别ID。

1 个答案:

答案 0 :(得分:0)

如果您的类别数量有限并且不经常更改,则可以使用RewriteMap将处理得很好的URL中的名称映射到带有ID的版本。 http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritemap

否则,您可以在数据库中添加查找(连接到类别表的表或类别表中的新列),其中包含一个包含所需URL友好类别名称的唯一列。