如何instagram.com用戶名傳遞變量如「instagram.com/username」或類似URL可變發送和接收
instagram.com/floydmayweather
而不使用$_GET
功能和它沒有變成這樣看
的Instagram /的index.php?用戶名=弗洛伊德·梅威瑟
如何instagram.com用戶名傳遞變量如「instagram.com/username」或類似URL可變發送和接收
instagram.com/floydmayweather
而不使用$_GET
功能和它沒有變成這樣看
的Instagram /的index.php?用戶名=弗洛伊德·梅威瑟
在HTTP服務器中使用URL重寫命令。 Apache和nginx都有很多例子。
重寫規則發生在服務器級別,然後它擊中你的代碼。這意味着在您的代碼收到它之前,URL實際上並不需要修改。
我這樣做的方式是將Apache/nginx配置爲發送與現有文件不匹配的所有URL(以使靜態文件(如圖像,js和css仍然可用))到我的index.php文件。然後在index.php文件中解析URL以確定要加載的頁面類型和數據。
在你的例子中,他們會抓住URL的最後一個標記,知道它將是URL格式的用戶名,在數據庫中查找該用戶並相應地生成頁面。
這是一個像前端控制器或URL路由器一樣在大多數框架中播放的地方。在index.php中,我會根據各個組件將每個URL映射到一個可處理實際頁面構建的類。
這是關於重寫模塊的更多信息;
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
http://wiki.nginx.org/HttpRewriteModule
一些快速谷歌搜索會告訴你如何配置許多這樣的例子。
您的index.php文件可以檢查$_SERVER
數組以確定請求的URL。在這種情況下,explode()
功能是你的朋友,解析URL並檢查其成分:)
的重寫引擎將是一個完美的解決方案,例如:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
重寫引擎 - 重寫引擎是位於運行在Web服務器上的Web應用程序框架中的軟件,該服務器修改了Web URL的外觀。這種修改稱爲URL重寫。重寫的URL(有時稱爲簡短的,花哨的URL,搜索引擎友好的 - SEF URL或slug)用於提供更短,更相關的網頁鏈接。該技術在用於生成網頁的文件和呈現給外部世界的URL之間添加了一層抽象。
使用
非但沒有與URL鏈接extenstion(.PHP/HTML等。)
www.stackoverflow.com/index.php
你會得到URL沒有extenstion
www.stackoverflow.com/index
可能有一些URL重寫應用 –
您可以查看http://httpd.apache.org/docs/2.0/misc/rewriteguide.html以獲取有關重寫的更多信息。 – andyg0808
你的意思是他們沒有username.php,即? – Yotam