2017-04-10 18 views
1

我重寫:成功的.htaccess URL重寫 - 下一步是什麼?

example.com/food-truck.php?id=1 

到:

example.com/truck/1 

使用:

Options -MultiViews 
RewriteEngine On 

# redirect "/food-truck.php?id=xxx" to "/truck/xxx" 
RewriteCond %{THE_REQUEST} \s/food-truck\.php\?id=([0-9]+)\s [NC] 
RewriteRule^/truck/%1? [R=301,L] 

我重寫它的工作,導致example.com/truck/1,但是......我得到一個404未找到在結果頁面上,說「在此服務器上找不到請求的URL」。

有什麼我缺少的東西,或者我的重寫有誤嗎?我是否需要某種「目標文件」來解釋重定向並顯示輸出?

+0

你去,你想錯了方式,所以,當你打'/車/ 1'你重寫'/food-truck.php?id=1 ',你有什麼只是一個重定向。 – cmorrissey

回答

3

你需要重寫的附加規則:

Options -MultiViews 
RewriteEngine On 

# redirect "/food-truck.php?id=xxx" to "/truck/xxx" 
RewriteCond %{THE_REQUEST} \s/food-truck\.php\?id=([0-9]+)\s [NC] 
RewriteRule^/truck/%1? [R=301,L] 

RewriteRule ^truck/\d+/?$ food-truck.php?id=$1 [QSA,L,NC] 
+1

它的工作原理,謝謝!任何建議提取,或「獲取」的ID退出的URL使用PHP的food-truck.php頁面? – Shane

+0

對不起,沒有得到你的問題。這兩條規則已經在做。 – anubhava

+0

基本上,$ _GET ['id']在URL重寫後不再有效。我需要使用ID來查詢數據庫,顯示結果等。$ _GET ['id']是否仍然提供給我一個結果,還是有一個替代方法,我應該使用新的url? – Shane