2013-07-21 108 views
0

這可能在某處出現過。但是,經過一段時間的搜索後,我無法弄清楚。自動重寫GET變量

我正在爲我的php網站創建一個小型路由引擎。我希望能夠使其儘可能動態和靈活。現在,我已將所有網址發送到我的路由器文件,並在內部解析正確網頁的網址。

我希望能夠自動將所有GET參數轉換爲某種預定義的格式。我在想,如果這是可能的:

來源: example.com/page.php?param=val & PARAM = VAL ...

要:

example.com/page/param/val/param/val... 

的關鍵在於我不想硬編碼匹配。理想情況下,我不需要知道有多少GET汽車或者它們是什麼,而是自動將任何轉換爲​​預定義的格式,如上所述。然後URI將被傳遞到我的路由器,然後根據需要解析它。此外,該路徑的頁面可能是幾個在「子目錄」,例如

example.com/account/register.php?action=something 

example.com/account/register/action/something 

TLDR

*可自動mod_rewrite的將所有GET參數到像一些預定義的格式頁/參數/ VAL/PARAM/VAL或頁/參數:VAL /參數:VAL *

UPDATE

爲了澄清我的問題/我明白,我怎麼可以使用常規的前壓力和不匹配網址的內容。我的問題是,我是否可以設置一些規則,將查詢字符串轉換爲預定義的格式,而不必知道它們之前有多少個參數或哪些頁面。

+0

肯定的 - 你可以使用'RewriteRule'指令 –

回答

0

使用mod_rewrite之外,你可以通過$ _GET數組中的index.php的循環,這樣做:

$url = ''; 
foreach($_GET as $key => $value) { 
    $url .= $key . '/' . $value . '/'; 
} 


header ("Location: http://www.mysite.com/" . $url); 
+0

這就是我正在尋找的,但如果可能的話直接使用mod_rewrite? – Ishikawa

0

看到類似的問題的靈感如何使用正則表達式:

Mod_Rewrite wildcard's/appending

+0

正則表達式,我得到的正則表達式,但我想知道我怎麼能做到這一點不知道有多少GET瓦爾有?您已鏈接的問題將一些預定義的值附加到匹配網址的末尾。我基本上想要它重寫查詢字符串到不同的格式(不知道查詢字符串中的參數數量) – Ishikawa

+0

重寫任意數量的瓦爾斯看到這個:http://stackoverflow.com/questions/2122022/mod-用未知數重寫變量 –