2013-10-02 149 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