• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mod_rewrite ファイルの有無で表示するページを切り換え)

mod_rewriteでファイルの有無で表示するページを切り替える方法

このQ&Aのポイント
  • Apacheのmod_rewriteを使用して、特定のファイルが存在する場合はそれを表示し、存在しない場合はリクエスト通りのページを表示する方法を紹介します。
  • 例えば、http://hogehoge/a.html をリクエストしたときにサーバ内にb.htmlというファイルがある場合はb.htmlを表示しますが、存在しない場合はa.htmlを表示します。
  • mod_rewriteの-fオプションを使用することで、ファイルの存在確認を行い、表示するファイルを切り替えることができます。

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

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

こんなこともできるのですね。勉強になりました。 RewriteEngine On RewriteBase / RewriteCond /var/www/html/b.html -f RewriteRule !^b\.html$ b.html [R] /var/www/html/b.html は b.html の絶対パスです。

pick52
質問者

お礼

この件はこれ以上待ってもこれ以上の回答は得られないようですし、 当初の目的自体は解決したので締め切らせていただきます。 t-okuraさん、ありがとうございました。

pick52
質問者

補足

おー、やってみたところできました。 絶対パスでないとダメなんですね。 ありがとうございます。 ただ、他にもいろいろルール書いていたため当初はその部分が問題に なり、無限ループする状態でした。 現在、以下のような感じに再度記述しているのですがもう少し簡略化 できないでしょうか。 # ここから RewriteCond xxx ^xxxx$ [OR] RewriteCond xxx ^xxxx$ # ここまでは同じルールにしたい # 以下のルールだけ AND? RewriteCond /var/www/html/b.html -f RewriteRule !^b\.html$ b.html [L] # これと上のルールを統合したい RewriteCond xxx ^xxxx$ [OR] RewriteCond xxx ^xxxx$ RewriteRule .* /xxx/ [R] これまた分かりにくいかも知れませんができればよろしくお願い します。 不可能であれば取り敢えず、このままで行くことにします。

関連するQ&A