2013-11-26 40 views
0

我的問題是關於URL和Web。有時我看到URL如下: www.myweb.com/user.php?name=mark 我知道這樣你可以從數據庫中取數據,其中名稱是標記和顯示在網站上。關於網址

但另一種方法是看是這樣的: www.myweb.com/user/mark

在我看來,它的文件用戶文件夾內命名的標記,不論如何,然後從數據庫顯示所有關於名叫馬克的傢伙的信息,但是究竟發生了什麼?它是如何做到的?這與XML有關嗎?何時使用它?爲什麼要這樣使用它?

我甚至不知道要在谷歌搜索什麼,所以任何鏈接都是有幫助的。

謝謝

回答

1

這被稱爲URL重寫Web服務器可以執行的常用技術。

WordPress的做到這一點,並把它轉換

http://example.com/2013/04/27/foo 

成類似

http://example.com/index.php?url=2013/04/27/foo 

您可以Wikipedia在泛泛而讀了。

+0

它不回答這個問題;它只是指向一個外部資源來找到答案。因此,作爲評論更合適。更多信息在這裏:http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers –

+0

+1因爲他需要知道:) – Babblo

0

如果談論普通的Apache服務器,網絡服務器有一個名爲.htaccess的文件或另一個httpd.conf能夠使用Apache的內置mod_rewrite模塊進行URL重寫。可以使用RewriteCondRewriteRule指令在這些文件中指定確切的方法。新的URI只是舊的別名。 (對於給定路線,不必具有實際的文件夾)

+1

這取決於Web服務器。 –

1

usermark不是「文件夾」,而僅僅是URL的一部分。

一些Web服務器遵循約定在文件夾/用戶/標記(相對於某個根文件夾)中查找並從那裏提供文檔。

但是,網絡平臺以不同方式解釋URL變得越來越普遍。確切的解釋取決於具體的網絡平臺。

這種網絡平臺只是使用平臺定義的約定將URL的一部分映射到服務器資源。

在ASP.Net(我最熟悉的平臺)中,映射稱爲routing

ASP.NET路由使您可以使用不必映射到網站中特定文件的URL。由於URL不必映射到文件,因此可以使用描述用戶操作的URL,因此用戶更容易理解。

0

這是因爲使用。htacces 這是一個文件,刪除查詢字符串,使相當網址

例子:

RewriteEngine on 
RewriteBase/

RewriteCond %{QUERY_STRING} !no-redir [NC] 
RewriteCond %{QUERY_STRING} (^|&)subject=([^&]+) [NC] 
RewriteRule ^(.*)/product.php$ $1/%2? [NC] 

RewriteRule ^([^+\s]+)(?:[+\s]+)([^+\s]+)((?:[+\s]+).*)$ $1-$2$3 [DPI,N] 
RewriteRule ^([^+\s]+)(?:[+\s]+)([^+\s]+)$ $1-$2 [R=301,DPI,L] 
+0

他從來沒有說過它是Apache ...當然是PHP資源的普通Web服務器,但不是唯一的。 –

+0

基本上你只需要改變一個文件,然後它使得漂亮的網址?不要相信它如此簡單,但你永遠不知道,如果你不問:P – user2965243

+0

我認爲,超過70%的網絡服務器使用Apache ...在我的國家約95%的網絡服務器使用Apache。 這只是一個例子... – Chiribuc