- ベストアンサー
htaccessでURL末尾にスラッシュを付加
- ホームページを公開するにあたり、http://www.ooo.com/xxxというアドレスでの公開が必要です。現状、http://www.ooo.com/xxxとhttp://www.ooo.com/xxx/でアクセスした場合に表示が異なり困っています。
- ソースを見るとどちらも同じファイル(index.php)を読み込んでいますが、「/」無しでアクセスした場合、cssを読み込んでいないような表示になります。
- .htaccessを使って/無しでアクセスした場合に「/」を付加するようなことは可能なのでしょうか。上記の方法を試しましたがうまくいきませんでした。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
スタイルシートへのパスを絶対配置にすればすむだけでは? そのほうが絶対に楽です。 HTTPサーバーは http://hoge.com/abc/efg という要求に対して、 ・efgというファイルを探し、 ・ファイルがなければディレクトリとみなして、 /efgを開いてみて、 その中にDIRECTORY_INDEXで指定されたファイルがあればそれを DIREXTORY一覧を表示する設定ならそれを ・ファイルもディレクトリない場合はPATH_INFOに/efgを格納して、/abcに対して同様な処理をしていきます。 ・トップディレクトリまで進んで、DIRECTORY_INDEXに指定されたファイルを表示または実行します。 そのため、ブラウザが判断するカレントは、http://hoge.com/abc とhttp://hoge.com/abc/ は異なりませんが、index.phpなどをトップにおいている場合は、判断を間違う可能性がありますが、それはサーバーと言うよりブラウザの判断ですから、スタイルシートを絶対パスで指定するほうが確実です。 すなわち <link rel="stylesheet" type="text/css" media="screen" href="/styleSheet/standard.css"> のように指定します。 PATH_INFO・・・をどのように指定しても、 http://hoge.com/abc/efg だろうが、http://hoge.com/abc/efg/hijだろうが気にしなくて良いです。 ちなみに私はテスト用にapacheを入れています。それとfirefoxのアドオンServer Switcher( https://addons.mozilla.jp/firefox/details/2409 )でローカルサーバーとリモートサーバーを切り替えています。 ローカルサーバーがないと、絶対パスで指定してあるスタイルシートを利用しずらいですね。
お礼
ありがとうございます! ご連絡遅くなり、申し訳ありませんでした。 仰るとおり、CSSのパスの問題でした。 原因としては、サーバーがマルチドメイン設定ができる関係なのか、CSS、画像パスなどを相対パスで記述する場合と、絶対パスの場合で表示、動作が異なる事が原因でした。 数日間悩んだあげく、放置していた所でした。 助かりました!