2015-02-11 49 views
-1

我开发核心PHP网站和我有联系,如如何改写动态URL和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

所以请如果任何一个有想法怎么做,请告诉我

+0

可能重复【如何做URL重用PHP写?](http://stackoverflow.com/questions/1039725/how-to-do-url-re-writing-in-php)或者用普通的mod_rewrite代替 – kero 2015-02-11 11:20:50

+1

如果你使用的是支持重写mods的web服务器,那就是现货。例如,一个可以让你这样做的apache2模块叫做“mod_rewrite”。您可以编写适用于属于这些规则范围的文件的表达式和规则。顺便说一句:你正在寻找的技术被称为“聪明的网址” – serjoscha 2015-02-11 11:21:26

+0

可以请你简单介绍一些更多关于这个或者有一些这样的演示谢谢 – user3565243 2015-02-11 11:23:16

回答

0

我会总结我的COMME因此,您可以将此帖标记为下一位遇到问题的人的解决方案。这使得找到答案更容易

您需要一个网络服务器,它支持网址重写。大多数人也许使用确实支持这个的apache2网络服务器。 apache的模块被称为“mod_rewrite”。您可能(取决于您的配置)需要首先启用它。

清洁和美丽的网址被称为“智能网址”,因为这个术语使搜索教程,指南和答案更容易。

要使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/