URL RewriteRule .htaccess更多SEO友好的形状

时间:2013-12-18 09:25:08

标签: php apache .htaccess url-rewriting seo

我有像这样的网址 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

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。