mod_rewrite不适用于干净的网址

时间:2013-10-02 09:01:35

标签: php apache .htaccess mod-rewrite

我正在为我的项目使用wamp服务器并且坚持使网址清理

目前我的网址是这样的

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

但它没有回归整个网址。有什么问题呢?感谢

1 个答案:

答案 0 :(得分: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的网址。使用print_r($ _ GET)进行完整性检查bookdetails.php