2011-08-06 63 views
3

我知道这些类型的URL如何根据它们的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; 
} 
?> 

但如何做这些类型的URL的工作吗?我的意思是,数据如何动态加载?

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

这些解析方式与GET参数类似的网站类似吗?

回答

1

您可以通过自身使用mod_rewrite如其他人所说,但由于其不是很灵活,大多数网站不这样做,和如果您拥有的这些“漂亮”URLs不止两个,可能会令人讨厌。

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

这些都提供了一个路由器的好例子,但他们很难理解没有其他互动类:

2

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