質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

21858閲覧

.htaccessでサブディレクトリをルートディレクトリに変更は可能でしょうか。

jyoze

総合スコア48

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2017/11/17 15:22

編集2017/11/18 15:28

・やりたい事

下記のようにサブディレクトリ「test」をルートディレクトリとして、
URLも下記のまま表示されるようにしたいです。

http://www.○○○.com/test/index.html

全てのファイルをトップディレクトリ(www.○○○.com直下)に入れると上手く表示される状態です。
その全てのファイルをサブディレクトリ(test)に移動させたときにパスなどは変更せずに.htaccessを使って表示させたいと思っています。
現状そのまま移動させても、パスはルートフォルダを参照しているので、cssや画像が表示されません。
リンクのパスは<a href="/test2.html">のように絶対パスの指定となっております。
JSも<script src="/js/script.js"></script>のような絶対パスで指定しております。
ですので、サブフォルダ内をトップディレクトリとして扱いたいと思っています。

.htaccessで上記のような対応は可能でしょうか。

▼構造はこのような形です。

http://www.○○○.com └ test   ├img   ├js   ├index.html   └index2.html

ご教示、何卒よろしくお願いいたします。

▼こちらは実際にtestフォルダ直下に入れているHTMLの一部になります。

<link rel="stylesheet" href="/css/style.css"> <link rel="stylesheet" href="/css/slick.css"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="/js/script.js"></script> <script src="/js/js.cookie.js"></script> </head> <body class="home"> <div class="container"> <header class="header" id="pagetop"> <div class=""> <h1><a href="/"><img src="images/common/header_logo.png" alt=""></a></h1> </div> </header> </div> </body>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2017/11/17 16:29

html や CSS などの URL と ファイルパス の対応を 数点・記載していただけないでしょうか。
jyoze

2017/11/17 16:48

ご連絡ありがとうございます。HTMLの一部を追加いたしました。こちらでよろしいでしょうか。
jyoze

2017/11/17 16:50

レンタルサーバーのため.htaccessなどでないと対応ができないかと思っております。
guest

回答1

0

ベストアンサー

RewriteEngine On RewriteCond %{REQUEST_URI} .*.css$ RewriteCond %{REQUEST_URI} !^/test/ RewriteRule ^(.*) /test/$1

でどうでしょうか。

#追記
書き直された質問では、cssファイルだけじゃなくて全ファイルをリライトしたいということでしょうか?
であれば、拡張子を判断している行を外して、これで良いと思いますが。

RewriteEngine On RewriteCond %{REQUEST_URI} !^/test/ RewriteRule ^(.*) /test/$1

#追記2
次の想像です。リダイレクトしたいと言うこと?

RewriteEngine On RewriteCond %{REQUEST_URI} !^/test/ RewriteRule ^(.*) /test/$1 [R=301]

投稿2017/11/18 02:57

編集2017/11/18 16:46
otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyoze

2017/11/18 09:43

otn様 ご教示ありがとうございます。 cssが表示されるようになりました! ただ、別ページ(同階層ページ)へのリンクが1つ上の階層を参照してしまいます。また、JSや、画像なども1つ上の階層を参照しているようです。
otn

2017/11/18 09:50

具体的な状況が分かりませんが、上の階層を参照するのは、上の階層を参照するように書いているからでしょうね。
jyoze

2017/11/18 10:12

ご連絡ありがとうございます。 全てのファイルをトップディレクトリに入れると上手く表示される状態で、 その全てのファイルをサブディレクトリに移動させているのですが、 リンクのパスは<a href="/test2.html">のように絶対パスの指定となっております。 JSも<script src="/js/script.js"></script>のような絶対パスで指定しております。 ですので、サブフォルダ内をトップディレクトリとして扱えれば良いのですが、.htaccessでは難しいでしょうか。。
otn

2017/11/18 10:41

コメントの内容と質問の内容が矛盾しているように見えますが、どちらが正しいのですか? 質問文が間違っているなら、訂正してください。
jyoze

2017/11/18 15:32 編集

otn様 説明がわかりにくくて申し訳ありません。 ただ、コメントの内容も、質問の内容もサブディレクトリをルートフォルダーとして扱いたいという意味でして、まったく同じ内容だと思っております。一応ですが、コメントの内容を質問の内容に反映させました。 こちらはやはり難しいでしょうか。
otn

2017/11/18 16:02

やはりよく分かりませんが、質問に追記しました。当たってますかね?
jyoze

2017/11/18 16:33

otn様 ご教示ありがとうございます。 css、js、画像と全て表示させることができました! またリンクの遷移ページも思っている表示なります。 ただ、リンクの遷移ページのURLだけが、一つ上の階層で表記されてしいます。 例えば http://www.○○○.com/test/index.html ↑このページに ↓このリンクが設定されております。 <a href="/test1.html">テスト1</a> <a href="/test2.html">テスト2</a> <a href="/test3.html">テスト3</a> この時のリンクの遷移ページのURLの表示を以下の用に表示させたいと思っています。 希望のURL http://www.○○○.com/test/test1.html 現状のURL http://www.○○○.com/test1.html 現状のパスではやはり不可能でしょうか。 度々申し訳ありません。
otn

2017/11/18 16:43

想像が外れましたか。 次の想像を追記してみます。
jyoze

2017/11/18 17:26

otn様 素晴らしいです! まさにこれです! 下記にリンクが飛びます! http://www.○○○.com/test/test1.html これはリダイレクトされているんですね。仕組みが分からず、 分からにくい説明になり申し訳ありませんでした。 本当に助かりました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問