扩展URL如何工作

时间:2011-08-06 16:04:37

标签: php url url-rewriting

我知道这些网址如何加载页面......基于他们的GET参数。

http://www.bedupako.com/songs.php?page=show_song_details.php&songid=1167&n=0&back=no

在后端大致是这样的:

<?php
switch($_GET['page']) {
case 'xx': include('my page');break;
.
.
.
default: include('default');break;
}
?>

但这些网址如何运作?我的意思是,如何动态加载数据?

www.dummysite.com/parm/subpage1/xyz
www.dummysite.com/parm/subpage2/xyz

这些解析如何与网站上的GET参数类似?

3 个答案:

答案 0 :(得分:2)

在大多数情况下,这将由Web服务器根据一组规则即时处理。它的具体细节因服务器而异,具体情况各不相同。在Apache中,通常使用the mod_rewrite extension完成。

答案 1 :(得分:1)

如果你使用apache(最有可能),你应该看看http://httpd.apache.org/docs/2.0/misc/rewriteguide.html url重写

答案 2 :(得分:1)

你可以像其他人建议的那样使用mod_rewrite,但是大多数网站都没有这样做,因为它不是很灵活,如果你有超过几个“漂亮”的URL,可能会很烦人。

相反,他们设置了一个基本的重写规则,将所有内容转发到单个index.php,然后在应用程序端,他们根据定义的模式解析URI - 这些被称为“路由”。路由解析通常发生在某种路由类中,它处理定义的路由并将它们与URI进行比较,然后在找到匹配时解析匹配路由的参数。

这些都提供了路由器的良好示例,但如果没有其他交互类,它们很难理解: