2011-08-06 94 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來完成。