- 締切済み
httaccessでURL末尾のスラッシュの制御
お世話になります。 http://www.hoge.com/a と入力した場合、末尾にスラッシュを補完する方法は分かったのですが今回、 「1回目に出現したスラッシュは補完し、2回目は補完しない」ということを行いたいのですが可能でしょうか? (1)http://www.hoge.com/a ⇒(補完する)http://www.hoge.com/a/ (2)http://www.hoge.com/a/b/ ⇒(2回目以降のスラッシュは削除) http://www.hoge.com/a/b としたいのですがこのような制御は可能でしょうか? よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- agunuz
- ベストアンサー率65% (288/438)
そもそも「httaccessでURL末尾のスラッシュの制御」をする意図は何でしょうか? http://www.hoge.com/a → a がディレクトリなら、http://www.hoge.com/a/ でないといけない http://www.hoge.com/a/b → b がディレクトリなら、http://www.hoge.com/a/b/ でないといけない → b がファイルなら、http://www.hoge.com/a/b でないといけない(最後に / が付いてはダメ) が自然なURLです(default index を返すときにサーバ側で自動的にセットされるハズです)。でないと返したソースからの相対パス(ブラウザ側が認識しているパス)が違ったものになってしまいます。 #たまにpath_infoを利用して「ファイルをディレクトリに見せかける」ことは #やりますが、外部cssもimg要素のsrc属性も全部DocumentRootからの #パス(もしくはhttp:// からの記述)にしないといけなくなります。
補足
ご回答ありがとうございます。 制御する理由ですが、Webサイトのメンテナンスを依頼されまして、膨大な数存在するformのアクション先が「./test.php」という形で指定されており、またアドレスはmod_rewriteで変更されており、実際はパラメータが渡されている形となっています。 http://www.hoge.com/a/b ⇒ 実際はhttp://www.hoge.com/?hoge1=a&hoge2=b 読み込むページは一つ目のパラメータ(hoge1)に依存しているようで、2つ目のパラメータに値があるページとないページが混在しており、またリンク先も統一されておらず、同じリンク先でも http://www.hoge.com/a/b http://www.hoge.com/a/b/ というようにバラバラになってしまっています。 そのためformのAction先が「http://www.hoge.com/a/test.php」や「http://www.hoge.com/a/b/test.php」というようにバラバラになってしまっており、すべてのformを見つけ出すよりも早いのではと思いhtaccessでの制御を考えております。 どうぞよろしくお願い致します。