• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:動的URLを静的URLへリダイレクト)

動的URLを静的URLへリダイレクト

このQ&Aのポイント
  • サーバの移転にともない、古いURLから新しいURLへリダイレクトさせる作業を行っています。
  • URL欄も表示も静的ページに遷移させます。
  • 正規表現に「?」を入れるとリダイレクトできないため、書き方を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.1

以下でどうですか? RewriteCond %{QUERY_STRING} ^year=(.*)&month=(.*)$ RewriteRule ^aaa/bbb.asp http://example.com/ddd/%1%2 [R,L] RewriteRule では?以下のクエリは無視されるので RewriteRuleの前にRewriteCondを使用してクエリを取得しておきます。( $ではなく % になるのでご注意。) 深く知りたければ RewriteCond で検索してみてください。

task-a
質問者

お礼

ありがとうございました。 先ほど動作を確認することができました。 ついでにもう1つお聞きしたいことがあります。 ISAPI_Rewriteは上から順に検索しているそうですが、ヒットするはずの文字列を入力しているのにヒットしないまま通り過ぎてしまうことはあるのでしょうか? また、1対1対応(/a/b.htmlだったら/c/d.htmlに遷移)の場合、どんな基準でRewriteRuleを書いていけばよいのでしょうか?

その他の回答 (2)

  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.3

正規表現で思い出したので追記です。 以前バージョン違いで正規表現が異なり、特にRewriteCond の振る舞いが変わることがありました。バージョン違いで「ヒットしないまま通り過ぎてしまう」ことも考えられます。 補足まで

task-a
質問者

お礼

> バージョン違いで そんなことってあるんですか…。 参考にしているサイトのほとんどがmodなのでISAPIとは違うという可能性もあるかもしれません。 しかしバージョン…盲点でした。 調べてみます。 ありがとうございました><b

  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.2

Ano1です。 たいへん申し訳ありませんが、当方ISAPI_Rewriteについて精通しているわけではなく、 「微妙に違う場合もあるが、ほぼmod_rewriteに同じ」程度の認識しかありません。 >ヒットするはずなのに通り過ぎてしまう については、コンピュータは絶対間違えませんので(バグを含めてミスるのは人間) 正規表現なら何かが不足しているのだと思います。 >1対1対応(/a/b.htmlだったら/c/d.htmlに遷移)の場合~ 不規則に1対1ですか!? 1行づつ書くしかないように思いますが。。。 ページ数によってはhttpd.iniまたは.htaccess も冗長・煩雑になりかなり大変な作業で泣きたくなるかと…。 ルールもひとつではなくかなり複雑な印象を受けますので、もし私でしたら、RewriteRuleではなく、質問者が得意の言語で振り分け用のスクリプトを用意し、とにかく全ページをそこへ飛ばして、そのスクリプト側で振り分けるという方法を取るかと思います。 助けにならずご容赦。

task-a
質問者

お礼

回答ありがとうございます。 > 不規則に1対1ですか!? えぇ、まぁ、業務ですので文句は言えません…。 私が使えるのは.htaccessだけです。 ほかのファイルは基本的にいじることができません。 権限がないですし、現場にいないので…。 なのでスクリプトもこちらでは用意できない状況なので、現場に頼むしか…ないですorz

関連するQ&A