我有一个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
答案 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”]变量从数据库中获取信息。