• 締切済み

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を整形して表示させたいと考えていますが、どうしても上手くいきません。 どのように記述したらよいのでしょう?? 勉強不足で申し訳ございません、何卒よろしくお願いします。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

回答ではありませんが: とりあえず ・どのような要求をどのように書き換えたいのかきちんと書く: 質問文を読むと http://www.example.jp/dir/?a=1&b=we333 という要求を http://www.example.jp/dir_1/?we333 のように書き換えたいと読めるのですが, それでいいですか? とれとも, 逆に書き換えたいのですか? ・「Not found」といわれたときに「どのような URL にアクセスしようとしているのか」はわかりませんか? サーバのログに出ているなら, それを確認することで「期待通り書き換えられているか」くらいはわかる.

watarubich
質問者

補足

ご指摘ありがとうございます。 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 が表示されています。 残念ながらサーバーのログを見れる環境ではなく、ログは取得できません。 情報が少なく、申し訳ございません。

noname#130824
noname#130824
回答No.2

RewriteEngine on RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^dir_([0-9]+)/(.*)$ dir/$2?a=$1&b=%1 [L]

参考URL:
http://xn--u8jxb9ib9150b2px.jp/htaccess/requery/
watarubich
質問者

お礼

ありがとうございます。 ただやはり上手くいきませんでした・・・ サーバ設定関連に明るくないので応用も利かず、非常に申し訳ない気持ちでいっぱいです。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

まず、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 かな。テストはしてません。

watarubich
質問者

お礼

すいません、コチラには「お礼」で入れるべきでした。

watarubich
質問者

補足

早いお答えを頂き、ありがとうございます。 仰られるとおり、読み替えての処理ですね。失礼しました。 試してみたのですが上手くいきませんでした。 NotFoundになってしまいます・・・

関連するQ&A