2017-01-25 10 views
1

私は "http://www.example.com/mobiles/page.php?id=999"のようなURLを持っています。私はこのようなURLのすべてのリクエストを "http://www.example.com/mobiles/page/show/999"のような新しいリクエストにリダイレクトしたいと思います。Apache .htaccess redirectスクリプトがサブフォルダにあるときにURLに一致するものが見つかりません

私は携帯電話のサブフォルダにある.htaccessを書いた:

Options +FollowSymLinks 
IndexIgnore */* 

RewriteEngine on 

RewriteCond %{THE_REQUEST} \s/page\.php\?id=([0-9]+)\s [NC] 
RewriteRule^/page/show/%1? [R=301,L] 

しかし、試合は発生しません。何が問題なの?前もって感謝します!

更新:

私は、この "http://www.example.com/mobiles/page.php?id=999" のようなURLに "?page.php IDを=" 一致するhtaccessの正規表現を書くために大きな困難を抱えています。私はオンラインのhtaccessのテスターをチェックしましたが、何かが本当に役立ちます...

+0

新しいURLは、ブラウザのアドレスバーに直接入力すると機能しますか? – starkeen

+0

はい、あります!私はちょっと説明します:私はyii2を使ってサイトを書いています。私はかなりのURLを有効にしました。 Route www.example.com/mobiles/page/show/898は完全に機能します。しかし、私は古いURL構造から新しいURL構造にリダイレクトしたい。古いURLはwww.example.com/mobiles/page.php?id=898でした。今私はこの時点で使用しているhtaccessファイルを投稿して質問を更新します。ありがとう! – demogorgorn

+0

私の答えを参照してください。 – starkeen

答えて

1

RewriteCondにわずかなタイプミスがあります。パターンにあなたのdirの名前を追加するのを忘れました。

RewriteCond %{THE_REQUEST} /mobiles/page\.php\?id=([0-9]+) [NC] 
+0

ありがとうございます!間違いが原因で、私はApacheとそのモジュールを構成することに強くない。 – demogorgorn

0

RewriteRuleが完全ではないようですが、RewriteCondからRewriteRuleにこのパターンを移動します。

RewriteRule ^products/([0-9]+)/?$ show_a_product.php?product_id=$1 [NC,L] 
+0

残念ながらそれは動作しません:( – demogorgorn

1

これはそれを行う必要があります。

RewriteEngine On 
RewriteRule ^mobiles/page/show/([^/]*)$ /mobiles/page.php?id=$1 [L] 

ちょうどあなたがこれをテストする前にキャッシュをクリアしてください。

+0

これを試してみました残念ながら私のために働いていない可能性がありますサイトがサブフォルダ内にあるのでおそらく – demogorgorn

関連する問題