我習慣了代表嵌入的URL信息是這樣的:地址表示
http://test.com/reports/statement.php?company=ABC&q=1
我怎麼會做這樣的呢?
http://test.com/reports/ABC/Q1
我習慣了代表嵌入的URL信息是這樣的:地址表示
http://test.com/reports/statement.php?company=ABC&q=1
我怎麼會做這樣的呢?
http://test.com/reports/ABC/Q1
您需要使用Apache mod_rewrite
來實現此目的。
如果您的服務器已經啓用了它,你可以做這樣的事情在.htaccess
:
RewriteEngine on
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /statement.php?company=$1&q=$2 [L]
您可以使用$ _ SERVER [「PATH_INFO」]的地址後,訪問任何在URL docpath 你的腳本。
例如
http://test.com/reports/statement.php/ABC/Q1
...然後在statement.php你會在$ _ SERVER [ 'PATH_INFO']字符串 「/ ABC/Q1」
當然,你需要設置你的webserver來匹配URL並根據HTTP請求定位正確的腳本。
正如其他人所說的,你必須使用url重寫。
通常一個使用它的php應用程序,它應用了稱爲前端控制器的模式。
這意味着幾乎每個url都被重寫爲指向單個文件,其中$ _SERVER ['PATH_INFO']用於決定要執行的操作,通常通過與您爲操作定義的模式進行匹配,或返回404錯誤,如果URL不匹配任何指定的模式。
這被稱爲路由和每個現代的PHP框架都有一個組件可以幫助完成這項工作。
一個聰明的舉動也將提供一個工具來爲您的資源生成url而不是手寫它們,這樣,如果您更改url模式,則不必在任何地方重寫它。
如果您需要一個複雜的路由系統,請查看一些主要框架的路由組件,例如, Symfony2,Zend Framework 2,Auraphp。
對於最簡單的php路由器,請檢查而不是GluePHP。代碼庫很小,所以你可以讓自己知道這些東西是如何工作的,甚至可以實現一個適合你的需求的小型路由器。
使用mod_rewrite –
搜索URL重寫,網上有很多文章。 – Turcia