2013-04-02 47 views
0

我想帶參數的URL轉換爲路徑,即翻譯的URL轉換爲一組GET參數

http://www.example.com/?page=1 => http://www.example.com/1 
http://www.example.com/?section=books&category=thriller&page=1 => http://www.example.com/books/thriller/1 

然後,我希望能夠得到這一切的參數使用它們一個查詢,以便根據這個參數進行選擇,我不知道從哪裏開始,我該怎麼做?我使用這個的.htaccess我所有的請求重定向到index.php

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ index.php/$1 [QSA,L] 

我怎麼能「翻譯」的路徑,一組參數在查詢中使用它們?

+0

什麼問題?您的重定向不起作用?你的PHP腳本不能正確處理請求? – cheesemacfly

+0

它寫道:「我想能夠從一個路徑提取參數,能夠與他們查詢數據庫」 – BackSlash

+1

你的問題是不清楚的,你問的東西,然後它的相反。 – mpm

回答

1

你有它向後。您希望將請求作爲http://www.example.com/books/thriller/1作爲http://www.example.com/books/thriller/1,然後將重寫爲index.php?qs=$1以供PHP處理。用戶通過這種方式可以看到「友好」的URL,PHP可以看到對其友好的格式。

所以你重寫規則會更改爲類似:

RewriteRule ^(.*)$ index.php?qs=$1 [QSA,L] 

然後你就可以通過訪問其內容:

$myQueryVars = explode('/', $_GET['qs']); 

http://www.example.com/books/thriller/1成爲

array('books', 'thriller', '1') 
+0

這似乎是工作,但我可以做什麼,如果用戶添加一些參數?即'http://www.example.com/books/thriller/1?a = 234' – BackSlash

+0

@Harlandraka那麼你將有'$ _GET ['qs']'以及$ _GET ['a']' 。 – Sammitch

+0

好吧,謝謝! – BackSlash

0

我會做像這樣的東西...

RewriteRule ^([0-9]+)$ index.php?page=$1 
RewriteRule ^([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9]+)$ index.php?section=$1&category=$2&page=$3