- 締切済み
RewriteRule に関しての質問です。
RewriteRule に関しての質問です。 .htaccessに記述することで http://◎◎◎.jp/dir/?a=1&b=we333 ↓ http://◎◎◎.jp/dir_1/?we333 http://◎◎◎.jp/dir/b.php?a=1&b=we333 ↓ http://◎◎◎.jp/dir_1/b.php?we333 のようにURLを整形して表示させたいと考えていますが、どうしても上手くいきません。 どのように記述したらよいのでしょう?? 勉強不足で申し訳ございません、何卒よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
回答ではありませんが: とりあえず ・どのような要求をどのように書き換えたいのかきちんと書く: 質問文を読むと http://www.example.jp/dir/?a=1&b=we333 という要求を http://www.example.jp/dir_1/?we333 のように書き換えたいと読めるのですが, それでいいですか? とれとも, 逆に書き換えたいのですか? ・「Not found」といわれたときに「どのような URL にアクセスしようとしているのか」はわかりませんか? サーバのログに出ているなら, それを確認することで「期待通り書き換えられているか」くらいはわかる.
RewriteEngine on RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^dir_([0-9]+)/(.*)$ dir/$2?a=$1&b=%1 [L]
お礼
ありがとうございます。 ただやはり上手くいきませんでした・・・ サーバ設定関連に明るくないので応用も利かず、非常に申し訳ない気持ちでいっぱいです。
- notnot
- ベストアンサー率47% (4900/10358)
まず、RewiteはURLの表示を整形するものではないというのはいいでしょうか? 「とあるURLでアクセスされた時に、別のURLに読み替えて処理する」 という機能です。 >http://◎◎◎.jp/dir/?a=1&b=we333 > ↓ >http://◎◎◎.jp/dir_1/?we333 おそらく、http://◎◎◎.jp/dir_1/?we333 というURLでアクセスされたら、http://◎◎◎.jp/dir/?a=1&b=we333 に読み替えて処理して欲しいと言うことですよね。 >http://◎◎◎.jp/dir/b.php?a=1&b=we333 > ↓ >http://◎◎◎.jp/dir_1/b.php?we333 RewriteEngine on RewriteRule ^/dir_1/\?(.*)$ /dir/?a=1&b=$1 RewriteRule ^/dir_1/(.*)\.php\?(.*)$ /dir/$1.php?a=1&b=$2 かな。テストはしてません。
お礼
すいません、コチラには「お礼」で入れるべきでした。
補足
早いお答えを頂き、ありがとうございます。 仰られるとおり、読み替えての処理ですね。失礼しました。 試してみたのですが上手くいきませんでした。 NotFoundになってしまいます・・・
補足
ご指摘ありがとうございます。 http://www.example.jp/dir_1/?we333 とURL欄に入力すると http://www.example.jp/dir/?a=1&b=we333 の表示をする形を望んでおります。 NotFoundのURLは、そのまま http://www.example.jp/dir_1/?we333 http://www.example.jp/dir_1/index.php?we333 が表示されています。 残念ながらサーバーのログを見れる環境ではなく、ログは取得できません。 情報が少なく、申し訳ございません。