2013-12-18 103 views
0

我有一个像 book.php?id=23product.php?id=23等。 网址,我希望他们能像URL重写规则的.htaccess更多的搜索引擎友好的形状

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

其实我在另一个星期有这个问题,原来这是因为url引用与我调用的php文件的名称相同,即:

RewriteRule ^book/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA] 

就像一个测试,您的规则更改为:

RewriteRule ^books/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA] 

,并尝试调用URL书籍/ 23来代替。

+0

太棒了。那工作。 – ImadBakir

+1

很酷。奇怪的是,我见过的每个在线教程都使用了例如^ product和product.php或者^ category和category.php的例子,所以我不知道为什么会这样。也许别人可以对此有所了解? –

+0

是的,这是绝对奇怪的问题。 同样发生在我身上。 – ImadBakir

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> 

这对我的作品。

在本地PC我已经尝试访问的网址:http://www.localSite.dch/book/12/nikos

,在我book.php中的文件我有以下代码:

<?php 
    echo "<pre>"; 
print_r($_REQUEST); 
    echo "</pre>"; 
?> 

结果是这样的:

Array 
(
    [id] => 12 
) 
+0

谢谢,但没有工作,我编辑我的问题,并添加了真正的链接,你可以尝试检查URL,如果你想,我修改.htaccess像你的。没有希望:\ – ImadBakir

+0

在你的htaccess文件中,你有没有其他规则之前呢? –

+0

没什么,只是这2行。 – ImadBakir