我有一個關於如何建立一個鏈接這樣的疑問:如何建立一個URL
http://stackoverflow.com/questions/ask
好了,基本上我想知道如何做一個類似的聯繫。 Ask
是一個頁面?擴展名(php,asp,...)被mod_rewrite
刪除?
通常在我的網站上我總是有相同的網址www.something.com
。所有的調用都是由ajax完成的。或者,或者是這樣的:www.something.com/?section=contacts
感謝
我有一個關於如何建立一個鏈接這樣的疑問:如何建立一個URL
http://stackoverflow.com/questions/ask
好了,基本上我想知道如何做一個類似的聯繫。 Ask
是一個頁面?擴展名(php,asp,...)被mod_rewrite
刪除?
通常在我的網站上我總是有相同的網址www.something.com
。所有的調用都是由ajax完成的。或者,或者是這樣的:www.something.com/?section=contacts
感謝
一個「URL」的定義是RFC1738
的URI(「統一資源標識符」)的「友好」的解釋,網址(「資源定位器」 )和URN的(資源名稱),可以發現很多地方,包括在這裏,維基百科:
http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
從RFC 1738:
http://<host>:<port>/<path>?<searchpart>
PS: 作爲一個完全獨立的問題,這裏的mod_rewrite的一個很好的總結:
有2點通用的方法。
1 - 創建一個文件夾,裏面有index.php - index.php(和index.html)通常先查找。這是最簡單的方式,並不常用於大型網站。
http://whatever.com/questions/ask
可以改寫爲:
http://whatever.com/questions/ask/index.php
2 - 你可以重寫服務器上的URL。從笨使用.htaccess文件實例:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
第三規則提出的index.php域之後的任何URL中的其他人之前。基本上,它讓你在像stackoverflow一樣寫一個url,並將它轉換爲像你的那樣的url。
這些網址被稱爲「乾淨網址」,爲了創建這些乾淨的網址,您可以使用mod_rewite網址重寫引擎。
在一個像http://www.somedomain.ext/category/some-page
這樣乾淨的網址中,「category」和「some-page」通常是動態頁面的參數。重寫引擎可以將上面的url重寫爲http://www.somedomain.ext/index.php?cat=category&page=some-page
。
您在某種程度上回答了您自己的問題。 mod_rewrite
是要走的路,如果您希望自己的網址清晰易讀,就像您在示例中顯示的那樣。 AJAX調用不需要URL,所以我不擔心這一點。只有在網站的不同頁面上工作的非AJAX呼叫才能由mod_rewrite
處理。這個過程被稱爲URL重寫,它重寫內部指向真實頁面的URL,但GUI上的URL看起來像您在示例中提到的那個。
那麼,StackOverflow ASP.NET MVC,所以沒有mod_rewrite那裏,但除此之外。 :)
這樣的應用程序的一個典型方法是mod_rewrite(或任何其他等效的)將所有請求路由到同一個文件(比如PHP文件)。然後該文件會查看所有部分(「問題」,「問題」等)並決定要做什麼。
但是,實際的URL與實際處理它的文件很少有關。這也是非常靈活的,因爲你可以讓你的網站更「漂亮」,更容易人類閱讀。谷歌也喜歡它們。
你正在尋找什麼是「友好的URL」一詞
所以,舉例來說,你的鏈接,www.something.com/?section=contact
將成爲www.something.com/section/contact
這是「友好」的人在看地址(如果你擔心搜索引擎優化 - 它不會關心機器)。
爲了使您的網址更友善,您的網絡服務器會將友好的格式轉換爲實際的基於查詢字符串的格式。這樣,您的腳本仍然可以訪問查詢字符串,但是讀取您的URL的人不必看到組成查詢字符串的醜陋問號和&符號。
您通常通過名爲.htaccess
的文件完成此操作。你可以在這裏閱讀使用.htaccess創建友好URL的教程:http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/
另一個術語,在那裏我鏈接到一些答案,在這裏的一些答案,是「漂亮的網址」 –
它不會被mod_rewrite這樣刪除,它從/ ask url重寫到目標腳本。 '問'部分可能與被調用的腳本名稱完全不同。閱讀htaccess,在網上有很多很多的例子 – carpii
首先,你真的需要了解「什麼是URL」?請看下面我的帖子中引用的鏈接。之後,你可以考慮mod_rewrite(僅適用於Apache,但有可用的IIS等價物),.htaccess(主要是Apache)或其他選項。恕我直言... – paulsm4