• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mod_rewrite / RewriteRule について教えて下さい)

mod_rewrite / RewriteRule について教えて下さい

このQ&Aのポイント
  • mod_rewrite / RewriteRuleについて詳しく教えてください。質問者はプログラミングが専門であり、サーバー関連の知識は少ないため、具体的な情報を探すことができませんでした。
  • .htaccessに設定されたRewriteRuleで、URLの末尾にスラッシュが付いている場合に、末尾のスラッシュを除去し、URLをphpファイルにリダイレクトすることができます。
  • ただし、RewriteRuleを使用すると、HTML内の画像ファイルへの相対パスが変更されてしまい、ディレクトリの階層がズレてしまう場合があります。画像のパスもmod_rewriteで書き換えることができますが、具体的な方法については分かりません。

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

  • ベストアンサー
回答No.1

RewriteCondディレクティブで、書き換え対象を絞り込むというのはいかがでしょう? 置換先のphp等のファイル名に命名規則があれば、絞り込むのはかなり楽です。 例を挙げます。   phpの命名規則:必ず"foo_"、"bar_"のいずれかで始まる。(foo_hoge.php等)   ### .htaccess の内容   RewriteCond %{REQUEST_URI} ^(.*)/(foo|bar)_(.+)/$ # この行で条件を絞り込む   RewriteRule ^(.*)/$ $1.php # RewriteCondにマッチした場合にのみURI書き換えを行う なお、http://www.ksknet.net/apache/rewritecond_rew.html に情報がまとまっています。

foreach
質問者

お礼

お返事が遅くなってすみません。 しばらく回答を待ったもののレスが付かなかったので、チェックするのを忘れておりました。本当に申し訳ありません。 とりあえず色々調べた結果「出来ない」というのが現時点での答えでした。 これはWEBサーバー側の特性なのだと割り切るしかないという結論に至っております。 amazonなどを参考にするとイメージ等の外部ファイルは全てhttpから始まるフルパスで指定されており、これならURL階層がどのように崩れてもページの表示が崩れることも無いということから、お客様とも相談してフルパスにすることになりました。 いまいちメンテ効率が低くなりますが、開発中はあまり気にせず、納品直前で一気にGREP置換することで話しが帰着しました。

関連するQ&A