2014-11-24 36 views
0

http://domain.com?keyword=value捕獲的URL

...很容易捕捉到它的一個簡單的GET請求,不過,我想捕捉我直接通過/像打完值:

http://domain.com/value

,我還可以像這樣獲取這些值:

preg_match("/[^\/]+$/", "http://www.domain.com/value", $matches); 
$last_word = $matches[0]; // value 

...不過,URL在結果,因爲它正在尋找一個名爲value的目錄,這個目錄顯然不存在。

+0

目前還不清楚你試圖達到什麼目的,因爲php在這裏可以正常工作。可能是url重寫? – alphawow 2014-11-24 07:47:02

+0

@alphawow正確,URL重寫 – 3zzy 2014-11-24 07:47:18

+0

索引頁面的所有請求可能? – alphawow 2014-11-24 07:47:52

回答

1

一個簡單的URL重寫就可以了。你可以刪除那個醜陋的正則表達式。

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA,NC] 

說明:

RewriteEngine on - 設置上
RewriteBase /重寫引擎 - /意味着你的項目/網站的根目錄,在這種情況下
RewriteCond %{REQUEST_FILENAME} !-f域之後的所有內容 - 不一個實際的文件
RewriteCond %{REQUEST_FILENAME} !-d - 不是一個實際的目錄
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA,NC] - 發送一切後將域名轉換爲url密鑰GET全局變量

現在,您可以通過$_GET['url']獲取網址。當然,您可以將密鑰更改爲該GET。

+0

如果'domain.com/somevalue'是一個文件夾,它將顯示該文件夾(如果沒有被阻止從apache級別)。但是,404頁面可以通過你的php代碼來完成。 – machineaddict 2014-11-24 07:53:23

+0

哇,優雅的解決方案! :) – 3zzy 2014-11-24 07:56:46