2014-09-12 120 views
1

到網址最近,我有以下回答:.htaccess rewrite url does not work

我想現在從DB每個ID添加標題到URL了。從我在互聯網上看到的東西看來,這是可能的。大多數情況下,我在每個php文件中都有$title,它指向db中的標題。

目前我在我目前的.htaccess文件中使用此:

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

# Redirect cars.php?cars_item=231 to cars/231/ 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+cars/cars\.php\?cars_item=([^&\s]+) [NC] 
RewriteRule^/cars/%1 [R=302,L] 

# Internally forward cars/231/ to cars.php?cars_item=231 
RewriteRule ^cars/([0-9]+)/?$ /cars/cars.php?cars_item=$1 [NC,L] 

而作爲HREF如下:<a href=\"cars/$id\"/>$title</a>

所以我希望作爲我的網址是以下內容。基本上我需要將標題添加到當前URL並用短劃線替換標題中的單詞之間的空格。

http://www.domain.com/cars/543/new-porsche-is-out

  • 汽車 - >子
  • 543 - > $ ID(從數據庫)
  • 新保時捷是出 - > $標題(從數據庫)

回答

0

你可以改變你的最後一個規則,以允許標題到底:

# Internally forward cars/231/title to cars.php?cars_item=231 
RewriteRule ^cars/([0-9]+) /cars/cars.php?cars_item=$1 [NC,L,QSA] 
+0

感謝您的回答,但由於某種原因,它確實按預期工作。我將如何添加破折號而不是網址中的空格(%20)? – TCEU 2014-09-12 23:13:50

+0

你在瀏覽器中輸入了什麼網址? – anubhava 2014-09-13 03:55:10

+1

@TCEU我希望你有'$title',並且你也從href中的'$ title'替換了帶有短劃線的空格。 – Prix 2014-09-13 04:45:01