我有像这样的网址
book.php?id=23
product.php?id=23
等。
我希望它们像
book/id/title
我现在的.htaccess就是这个
RewriteEngine On
RewriteRule ^book/([0-9]+)\-([a-z0-9_\-]+)/?$ book.php?id=$1 [NC,L,QSA]
但它无法正常工作,
它指向book.php页面,尽管页面有问题,我无法使用$_GET
获取Id参数,任何帮助表示赞赏
这是我的网址http://www.gamzesart.com/book.php?id=2
答案 0 :(得分:2)
尝试以下方法:
+FollowSymLinks # This is based on the comment of PeteR bellow in comments
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^book/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
</IfModule>
这适合我。
在我的本地电脑中,我尝试访问该网址:http://www.localSite.dch/book/12/nikos
在我的book.php文件中,我有以下代码:
<?php
echo "<pre>";
print_r($_REQUEST);
echo "</pre>";
?>
结果如下:
Array
(
[id] => 12
)
答案 1 :(得分:2)
实际上我在另一周遇到了这个问题,事实证明这是因为url引用与我调用的php文件的名称相同,即:
RewriteRule ^book/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
作为测试,请将规则更改为:
RewriteRule ^books/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
并尝试将网址称为books / 23。