2013-12-18 99 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