2010-07-30 77 views
3

我正在開發一個使用PHP的網站。 我的.htaccess有這個重寫規則:使用PHP訪問GET變量+ .htaccess

RewriteEngine On 
RewriteRule ^book/([^/]*)\.html$ book.php?title=$1 [L] 

所以看起來像網址:www.example.com/book.php?title=title-of-the-book 變成www.example.com /book/title-of-the-book.html

在特定情況下,從網站中的其他頁面,我想鏈接到這樣的頁面: www.example.com/book.php?title= title-of-book?myfield = 1 然後變成 www.example.com/book/title-of-the-book.html?myfield=1.html

還有,我無法使用通常的PHP方式訪問GET變量

$variable = $_GET['myfield'] 

我該如何解決這個問題?

回答

7

指定[QSA](查詢字符串追加),以便您可以將URL傳遞給查詢字符串。

RewriteEngine On 
RewriteRule ^book/([^/]*)\.html$ book.php?title=$1 [QSA,L] 

PS:爲什麼在這裏使用*+會不會更好?

+0

我不知道'*'和'+'。我不太瞭解URL重寫,所以我的一位朋友爲我寫了這些規則。你爲什麼認爲應該有一個'*'而不是'+'? – rlc 2010-07-30 22:21:41

+2

'*'是零個或多個字符,即'book/.html'也是允許的。 '+'是一個或多個字符,所以'book/.html'不會匹配。 – NikiC 2010-07-31 08:58:24