重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お世話になります。

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

としたいのですがこのような制御は可能でしょうか?

よろしくお願い致します。

A 回答 (1件)

そもそも「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での制御を考えております。

どうぞよろしくお願い致します。

補足日時:2014/02/21 15:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!