在显示博客文章的php文件中重写url

时间:2013-03-19 12:32:56

标签: php .htaccess url-rewriting

我有一个php文件,它接受存储在数据库中的文章的id(来自GET变量)并使用它来显示它的全部内容,我的意思是标题,作者,内容等。<登记/> 当它出现时,网址显示:

localhost/inicio.php?id=1  

其中id = 1是数据库中的文章ID。但是我想要它显示:

 localhost/this-is-the-article  

我知道我应该编辑.htaccess以这种方式重写网址:

RewriteEngine on  
RewriteRule ([a-zA-Z0-9_-]+) inicio.php?id=$1 

在这一点上,我不明白的是我应该在顶部显示文件的php文件,当通过$_GET['id']获取要重写的url的ID时,请记住,如果id是不同的,重写的url也会改变,比方说,这样

localhost/this-is-another-article

2 个答案:

答案 0 :(得分:1)

创建url字段并直接存储

等网址
this-is-article
this-is-another-article
.... so on

然后传递url而不是id

localhost/inicio.php?url=this-is-article
localhost/inicio.php?url=this-is-another-article

然后重写它......

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ /inicio.php?url=$1

现在通过

访问它
localhost/this-is-article
localhost/this-is-another-article

答案 1 :(得分:0)

您需要的是将URL存储在数据库中并根据该值而不是id进行返回获取。

这是因为无法在.htaccess文件中映射id和url,您将在其中编写重写代码 所以你的.htaccess就像是:

RewriteEngine on
RewriteRule ^(.*)$ /inicio.php?article_url=$1

在您的PHP代码中,您只需使用这个新创建的$ _GET [“article_url”]变量从数据库中获取信息。