• 締切済み

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 としたいのですがこのような制御は可能でしょうか? よろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数8

みんなの回答

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.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:// からの記述)にしないといけなくなります。

news_0203
質問者

補足

ご回答ありがとうございます。 制御する理由ですが、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での制御を考えております。 どうぞよろしくお願い致します。

関連するQ&A

  • URL スラッシュ

    www.hoge .com/piyo/***// のような上のリンク先にスラッシュが複数あるURLをクリックしたら、 ホームページが文字だけのサイトに飛ばされました。 末尾のスラッシュが2つある事に気付き、 1つスラッシュを消して再度アクセスしたら、通常通り閲覧できました。 なぜ、文字だけのサイトのような状態になっていたのでしょうか? この現象が起きた場合、HPの更新が出来なくなる事もあるのでしょうか。

  • excelで"末尾に特定の文字列を含まない"行を削除したい

    excelでセル末尾に特定の文字列を含まない行を削除したいのですが、どのようにすればいいのでしょうか。 実際の書類はA列のみにずらっとメールアドレスが3万行並んでおり、この中には不完全なメールアドレス"hoge@hoge.jp.ne"等があるため、一般的な末尾に来るべき文字列".jp" ".com" ".net" などが末尾にないセルを削除したいです。また、"hoge@hoge@hoge.jp" というアドレスも存在するため、"@"が2個以上含まれたセルも削除できると助かります。 マクロの実行方法はわかりますが勉強不足で書き方がわかりません。我が儘ですが、お知恵を拝借いただけると幸いです。よろしくお願い致します。

  • URLの最後のスラッシュ

    いつもお世話になりますm(__)m 素人ながらApache2.0のバーチャルドメインを使い数個のドメインでホームページを公開しております。 今回新しいページを公開し、チラシに「http://abc.net」という表記でアドレスを印刷、配布しました。 最後のスラッシュについて今まで特に考えもせず、何も問題なかったのですが、見に来た方に指摘されました。 http://abc.net とアドレスを打ち込むと、ページが見つかりません。というエラーが出るそうです。 改めて http://abc.net/ と最後にスラッシュを入れると問題なくページが表示されたそうです。 その後は、スラッシュ無しでもページが見れるみたいなのですが、なぜ最初の1回目だけスラッシュ無しだとページが表示されないのでしょうか? ちなみに、数人に確認したところ、ほとんどの方が見れたと仰っており、一部の方が見れなかったそうです。 なぜ一部の人だけ見れないのでしょうか…?? ちなみに、私はいままで最後にスラッシュを付けずにページを見たりしていました。 (これも実はサーバーに負荷がかかるみたいで、申し訳ない事をしてたみたいで反省です) 素人なりに調べた結果、http.confのUseCanonicalNameがOffになっているのが原因かと思いましたので、とりあえずOnに変更みました。 そこで、詳しい方にご教授頂きたいのですが。 (1)環境やパソコンによって最後のスラッシュが必要だったり、無くてもページが表示されたりと、挙動が異なるものなのでしょうか? (2)最後にフラッシュを付けないでアクセスしてページが表示されないエラーが出た場合、サーバーのログ(Apacheログ)に何か記録されますか? 素人がややこしい事を言いますが、なにとぞお力添えのほどお願い致しますm(__)m

  • スラッシュで区切った日付表示について

    A1セルに20210228(日付)と入力しB1セルに+A1と式を入れて20210228の表示をスラッシュで区切った日付で表示させる方法を教えてください。 20200228⇒2020/02/28 エクセルバージョンは2016です。

  • RewriteRuleで動的URLを静的URLに見せたい

    ご存知の方がいらっしゃいましたら、 ご指導いただきたいと思っています。 http://example.com/hoge.do?itemNo=123456(以下"A") という動的URLのリンクを http://example.com/hoge/123456(以下"B") という静的URLに見えるようなリンクに変えようと思っています。 そして、 "B"にアクセスした場合"A"の内容をブラウザに表示しつつ、 ブラウザのURL欄を"B"のままにしたいと思っています。 そこで、httpd.confに以下の設定をして、"B"にアクセスしたところ・・・ 1行目 RewriteEngine on 2行目 RewriteRule ^/hoge/(.*)$ /hoge.do?itemNo=$1 「Web ページがみつかりません(HTTP 404 )」 が帰ってきてしまいます。 そこで試しに httpd.confの設定を以下のように変えて、"B"にアクセスしたところ・・・ 2行目 RewriteRule ^/hoge/(.*)$ /hoge.do?itemNo=$1 ↓ 2行目 RewriteRule ^/hoge/(.*)$ /hoge.do?itemNo=$1 [R] "A"の内容をブラウザに表示され、ブラウザのURL欄は"A"のままとなってしまいます。 どのようにしたら、本来の想定どおりの動きができるのか? 何か他の設定がおかしいのか? どなたか心当たりがあればヒントをください。 どうかよろしくお願いします。

  • htaccessのリダイレクトについて

    html、phpなどの拡張子付きリクエストを、末尾がスラッシュの URLにリダイレクトしたいのですが、方法をご教示ください。 例えば、 http://www.hoge.com/hoge/ へのリクエストを、異なるサーバーの http://www.hoge2.com/hoge/ にリダイレクトしたいと考えており、以下のように記述しています。 #.htaccessの記述 Redirect permanent /hoge/ http://www.hoge2.com/hoge/ しかし、 /hoge/hoge.php のリクエストがあった場合、以下のようにドキュメント名を付加される ので困っています。 http://www.hoge2.com/hoge/hoge.php 宜しくお願いします。

    • ベストアンサー
    • PHP
  • Mail.appでアドレス同士のフィルタリング

    先日、メールで大失敗をしてしまいました。 もう二度と過ちを繰り返さない為に、皆様のお知恵を拝借したいです。 あるお客様Aの案件についてのメールに全く関係ないお客様Bのアドレスを Cc欄に混ぜてに送ってしまいました。 その結果、A、Bのお客様、社内で大変なことになってしまいました。 まったくもって私の不注意で弁解の余地など無く反省しています。 紛れ込ませてしまった直接的な原因はメールアドレスの「自動補完機能」です。 MacのMail.appを仕事で使っています。 お客様Aのご担当社のメールアドレスが”takahashi@hoge.com”だった場合、 ”taka”とでも入力すれば、”takahashi@hoge.com”と自動補完してくれるのですが、 B様が”takashi@funi.com”だった場合も”taka”と打っただけで自動補完してしまい、 結果、目的のアドレスとは違うものが入力されてしまいます。 そういうことが起きてしまいました。 今は応急処置として、自動補完機能をOFFにしてるのですが、 今まで使っていただけに、すごく不便に感じます。。。 そこで、皆様に質問なのですが、 Aに関するキーワードがメールに含まれている場合に、 Bに送付しようとしたら、アラートが出るようなアドインなど教えてくれませんか? お願いします!熱望!

    • 締切済み
    • Mac
  • 四捨五入ではなく末尾を切り上げる方法はありますか

    エクセル2010を使用しています。 別の質問と被ってしまうのですが今回は A列にいろいろな数字が入っているとしてB列に計算結果を出したいのですが 1.数字の末尾が4以下の物は5に丸める。   11 → 15   12 → 15   101 → 105   123 → 125 2.数字の末尾が0や5の場合はそのまま。   10 → 10   30 → 30   500 → 500   15 → 15   45 → 45   1055 → 1055 3.末尾が6以上だったら9にする。   16 → 19   38 → 39   108 → 109   1237 → 1239 めんどうな式になると思うのですがよろしくお願い致します。

  • 逆スラッシュが入力できない

    いつもお世話になります。 ノートンのエラーでファイル名を指定して実行をしなくてはならないのですが、逆スラッシュが入力できなくて困っています。 ここで検索してやってみましたが、何度やっても¥になってしまいます。 Arial Unicode MSをインストールすればいいのでしょうか? そのフォントのインストールの方法は アプリケーションの追加と削除から、MicrosoftXPを変更すればいいと出ていますが、それすら見つかりません。 なんだか朝から憂鬱になってしまいます。 どなたか助けてください。

  • URL末尾のスラッシュ

    基本的なことだと思いつつも、うまく検索できなかったので質問させてください。 通常URL中の/は、ディレクトリを表しますが、特にブログのトラックバック等でcgiやphpといったスクリプトの後にスラッシュがついているのをみかけます。 (例) http://hoge-hoge.jp/~/trackback.cgi/4 この場合の/は何を意味するのでしょうか。

    • ベストアンサー
    • Perl

専門家に質問してみよう