2017-04-10 2 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

を'、あなたが持っているものは単にリダイレクトです。 – cmorrissey

答えて

3

あなたが書き換えのための追加ルールが必要です。あなたは、あなたが `/トラック/ 1`あなたが/food-truck.php?id=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] 

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

それは動作します、ありがとう! PHPを使用してfood-truck.phpページ内で使用するURLからidを抜き出す、または取得することを推奨しますか? – Shane

+0

ご質問をいただきませんでした。これらの2つのルールは既にそれを行っています。 – anubhava

+0

基本的に、$ _GET ['id']はURLの書き換え後も機能しません。 IDを使用してデータベースを照会し、結果などを表示する必要があります。$ _GET ['id']はまだ私に結果を提供していますか、新しいURLを使用する別の方法がありますか? – Shane