- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mod_rewrite / RewriteRule について教えて下さい)
mod_rewrite / RewriteRule について教えて下さい
このQ&Aのポイント
- mod_rewrite / RewriteRuleについて詳しく教えてください。質問者はプログラミングが専門であり、サーバー関連の知識は少ないため、具体的な情報を探すことができませんでした。
- .htaccessに設定されたRewriteRuleで、URLの末尾にスラッシュが付いている場合に、末尾のスラッシュを除去し、URLをphpファイルにリダイレクトすることができます。
- ただし、RewriteRuleを使用すると、HTML内の画像ファイルへの相対パスが変更されてしまい、ディレクトリの階層がズレてしまう場合があります。画像のパスもmod_rewriteで書き換えることができますが、具体的な方法については分かりません。
- みんなの回答 (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 に情報がまとまっています。
お礼
お返事が遅くなってすみません。 しばらく回答を待ったもののレスが付かなかったので、チェックするのを忘れておりました。本当に申し訳ありません。 とりあえず色々調べた結果「出来ない」というのが現時点での答えでした。 これはWEBサーバー側の特性なのだと割り切るしかないという結論に至っております。 amazonなどを参考にするとイメージ等の外部ファイルは全てhttpから始まるフルパスで指定されており、これならURL階層がどのように崩れてもページの表示が崩れることも無いということから、お客様とも相談してフルパスにすることになりました。 いまいちメンテ効率が低くなりますが、開発中はあまり気にせず、納品直前で一気にGREP置換することで話しが帰着しました。