如何重写动态url和dynamic<;a></a>;php中的链接


How to rewrite the dynamic url and dynamic <a></a> links in php

我正在core php中开发一个网站,我有之类的链接

<a href="news_details.php?news_id=$data['news_id']?>">Read More</a> 

因此,我的问题是从所有网站以及链接中删除.php扩展,url必须像http://www.example.com/news/一样好,而不是像http://www.example.com/news.php?news_id = 4 一样好

因此,如果有人知道如何做到这一点,请告诉我

我将总结我的评论,这样你就可以在这里将这篇文章标记为下一个有问题的人的解决方案。这使得找到答案变得更容易

您需要一个支持重写URL的Web服务器。大多数人可能使用apache2 Web服务器,而确实支持这一点。apache执行此操作的模块称为"mod_rewrite"。您可能(取决于您的配置)需要首先启用它。

干净漂亮的URL被称为"智能URL",因为这个术语使搜索教程、指南和答案变得更加容易。

要使mod_rewrite工作并重写URL,您需要为当前项目/目录启用模块并写下一些规则。

你可以在.htaccess文件中这样做,对于你的例子,它看起来像这样:

.htaccess:

RewriteEngine On
RewriteRule ^news/([0-9]+)'.?.*$ news.php?id=$1 [NC,L]

这将导致服务器内部(用户看不到)重写如下内容:

http://www.foo.de/news/1337.my-awesome-first-newspost

 http://www.foo.de/news.php?id=1337

备注:新闻ID后面的所有内容都被忽略

正如您所看到的,规则是作为正则表达式编写的,这使您能够创建真正灵活的规则。

您还可以编写多个规则,相互依赖,或者在之后应用一个

我发现了一个页面,可以让你测试你的规则,因为在你的服务器机器上进行调试时,这总是有点困难:

http://htaccess.madewithlove.be/