人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

もろもろの事情で、htmlソースを絶対パスを使って記述したいのですが、そうすると、ルート設定が違うサーバーにおくとうまくいきません。
良い方法はないでしょうか?どうやら、.htaccessで「RewriteEngine on」を使ってルートを指定するのが、よさそうなのですが、
使い方がまちがっているのか、どうもうまくいきません。
「RewriteEngine on」の使い方でもいいですし、他の方法でも構いません。
ご教授頂ければ幸いです。宜しくお願い致します。
※<base href="">を使用して相対パスで記述したほうがいいとか、最初から相対パスを使用した方がよいというのは無しで、お願いします。

●質問者: fablies2007
●カテゴリ:インターネット ウェブ制作
✍キーワード:.htaccess HTML ON サーバー ソース
○ 状態 :キャンセル
└ 回答数 : 1/1件

▽最新の回答へ

1 ● y-kawaz

以下のようなコンテンツを別サーバの / や /foo に置いてもうまくリンクが繋がるようにしたいと言うことでしょうか?

■/に置く場合 (/1.html, /2.html)

/.htaccessに以下を記述します。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^abc/(.*)$ $1 [L]

■/fooに置く場合(/foo/1.html, /foo/2.html)

/.htaccessに以下を記述します。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^abc/(.*)$ foo/$1 [L]


元のコンテンツが/をベースにしている場合はこんな感じ

■/xyzに置く場合 (/xyz/1.html, /zyx/2.html)

/.htaccessに以下を記述します。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ xyz/$1 [L]


ちなみに上記 RewriteCond で !-d や !-f をチェックしているのは、本当にそこに実ファイルがある場合はそこにある実ファイルを優先するという意味です。

(どれも未テストです。上手く動かなかったらすみません…)

http://q.hatena.ne.jp/answer

◎質問者からの返答

ご丁寧な回答、大変ありがとうございます。

とりあえず、絶対パスで記述すると、CSSが効かないのですが、

上の階層に、CSSを移動すると効くようになります。

おそらく、レンタルサーバー側の設定でドキュメントルートが一個上の階層になっているのかな?と思い、

解決方法を調べてるうちに、.htaccessでドキュメントルートのパスを指定すればいいらしい?

ということを知り、以下のようにやってみました。

ファイルを入れてるフォルダは「○○○.com/●●●」という感じのサブフォルダで、アクセス制限をかけてます。

設置先のドメインのドキュメントルートは「/home/□□□/○○○.com/public_html/」です。

そこで、http://www.nurs.or.jp/~sug/homep/rewrite/rewrite15.htmを参考にして、

「○○○.com/●●●/.htaccess」のなかに以下のような記述をしました。

-------------------------------------------------------------

AuthUserFile "/home/shadow/shadow.xsrv.jp/htpasswd/.htpasswd"

AuthName "Member Site"

AuthType BASIC

require valid-user

↑ここまでは、レンタルサーバー側で自動で生成されたもの↑

RewriteEngine on

RewriteBase /home/□□□/○○○.com/public_html/●●●

-------------------------------------------------------------

しかし、どうもうまくいきません。他のパスも選択できうるものはすべてやってみたのですが、うまくいかないです。

ただ、TOPフォルダにおくと、普通に絶対パスの記述だけでうまくいく(.htaccessなし)ので、

もしかしたら、レンタルサーバー(xserver)側でサブフォルダ内のファイルのドキュメントルートも、

強制的に「/home/□□□/○○○.com/public_html/」

になる設定になっているのかと思って、今に至ります。

ご教授いただければ大変うれしく思います。宜しくお願い致します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ