2013-10-02 191 views
0

工作我使用WAMP服務器爲我的項目,並停留在做清潔的網址mod_rewrite的不乾淨的URL

目前我的URL地址是這樣

http://localhost/BookProjectFinal/booksdetails.php?pid=8 

我想讓它像這樣

http://localhost/BookProjectFinal/booksdetails/8 

我用我的.htaccess文件是這樣的

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)$ booksdetails.php?pid=$1 
RewriteRule ^([a-zA-Z0-9]+)/$ booksdetails.php?pid=$1 

但它不工作,它返回的整個網址。它有什麼問題?謝謝

+0

「RewriteLog」的輸出結果是什麼?您肯定會使用它進行調試? – DanFromGermany

回答

1

RewriteBase參數將告訴mod_rewrite從哪個目錄開始匹配。這可以用於位於apache子文件夾中的應用程序。您可能需要將其設置爲/ BookProjectFinal/here。

您的正則表達式正在尋找匹配一個完整的字母數字網址(可選擇跟着一個斜槓),我不知道是您想要的。試試類似:

RewriteRule bookdetails/([0-9]+) bookdetails.php?pid=$1 

只匹配數字。這裏有一個測試:

RewriteEngine On 
RewriteRule ^bookdetails/([0-9]+) bookdetails.php?a=b&pid=$1 

匹配表單/ bookdetails/8的URL。使用print_r($ _GET)來完成檢查bookdetails.php

+0

仍然不能正常工作我試過你的建議 – phplover

+0

更新了答案 - 你可能需要添加RewriteEngine On? –

+0

我得到了它的工作感謝所有的幫助。我做錯了的事情是提供所以我改變它只是myvariable和所有工作正常 – phplover