![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
今まで趣味で立ち上げてきたWebサーバを引退させ、コンテンツをレンタルサーバに移しました。
これまで
http://引退サーバ/コンテンツ
だったURLは
http://レンタルサーバ/~アカウント名/コンテンツ
になりました。
元々、
コンテンツ内の全ページは「ドキュメントルート/style/my.css」を使用していたり、
複数のページが共通の「ドキュメントルート/img/*.gif」を埋め込まれている
のですが、これらを絶対パス指定してしまっていて、
引越し先では相対的にドキュメントルートが変わってしまったため、
cssや画像が読み込まれずに表示されてしまっている状態で困っています。
全ページのHTMLに書かれているパス指定を書き換えればよいのかも知れませんが、
ページ数が多過ぎて非現実的です。
htaccessに何か書くことで下位ディレクトリのドキュメントルートを
ユーザのホームディレクトリに変換できないかと
あちこち調べてみたのですが分かっておりません。
何かアドバイスを頂ければ幸いです。
A 回答 (9件)
- 最新から表示
- 回答順に表示
No.9
- 回答日時:
私は下記の.htaccessをルートに於いて ルート変更 をトライ中です。
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/aaa/bbb/ccc/.*$
RewriteRule ^(.*)$ /aaa/bbb/ccc/$1
No.7
- 回答日時:
階層の深度はフォルダー内置換では関係ありません。
指定されたフォルダーの下位フォルダーすべてについて書き換えてくれます。CSSも画像もみんな/oldにほうり込んで処理します。たとえば、
href="/css/print.css"
↓
href="/old/css/print.css"
src="/images/photo/fuji.jpg"
↓
src="/old/images/photo/fuji.jpg"
相対パスにする必要はありません。そのまま絶対パスでよいです。
![「ユーザ毎にドキュメントルート変更できます」の回答画像7](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/2/650963_5497e8de69fce/M.jpg)
No.6
- 回答日時:
書き換えたほうが良いというもう一点は・・
なんといってもファイルのパッティングが生じない
と言うことです。
もし古いファイルの中での参照やリンク先が/images/logo.gifだったら、新しいページには、/[user name]/images/logo.gifが置けないですよね。
古いページが何千ページあろうと、引っ越した場合新しいサイトで一切ページを製作しない限りは、パスは書き換えましょう。
No.5
- 回答日時:
ファイルをすべて/oldなどに引っ越して、/oldの.htaccessに、
alias / /old
で良いと思うが、それを許可しているサーバーはないでしょう。デフォルトでは禁止されている。
まさに、私が今、数百ページに対してその作業をしていたのですが、テキストエディタの「フォルダーから置換」で、絶対パス、相対パスが混在していましたが、数回の処理で済ませました。ものの数分で済む作業です。
絶対パスでの記述は、ファイルをどこに移動しても良い、テンプレート一つ作っておくと作業が簡単と言う利点もある一方で、他から参照されるファイルを移動するときには、今回のような引越し以外でも、必ずこの作業が必要になります。
以前は、perlを使って作業していたのですが、今はテキストエディタに頼ることが多いです。ちなみに私は、EmEditor( http://jp.emeditor.com/ )です。(EmEditor Free ( http://jp.emeditor.com/modules/download2/rewrite … )にはファイルから置換の機能はありません)
(src|href)="?\/([^"\s])"?
↓
\1="/old/\2"
とか・・・。
大規模なサイトを運営していると、Perlや高機能なテキストエディタは必須のツールです。この機会にそれらの導入を考えたほうが早いでしょう。EmEditorの試用版( http://jp.emeditor.com/modules/download2/ )
余談ですが、絶対パスで記述しているファイルのプレビューがファイルをブラウザで開いただけではできないという問題は、firefox+Server Switcher( https://addons.mozilla.jp/firefox/details/2409 )で、ローカルのテストサーバーと切り替えることで簡単にできます。
ご回答有難うございます。
テキストエディタで下位フォルダ中のファイルを一括置換してくれるものがあるのですね。
使用検討してみます。
置換例も示して下さいまして有難うございます。しかしながら、御示しの例では
置換後も絶対パスが使われてるようですがこれではまずいってことですよね。
/aaa.html内の記述
「href="/style/my.css"」は「href="./style/my.css"」に、
/Folder/aaa.html内の記述
「href="/style/my.css"」は「href="../style/my.css"」に直さなければならないのですよね。
当方、旧サイトであろうことか何階層も掘って作ってしまってまして、
これを一括でできればいいのですが....
No.3
- 回答日時:
>ページ数が多過ぎて非現実的です。
旧絶対パスを残す方が非現実的であって、パスを変更するのが妥当です。
何百ページあろうが、置換え機能があるテキストエディタの
置換えで一括変換して下さい。
(Dreamweaverならサイト内置換機能で、数十秒で完了出来るでしょう)
旧絶対パス → 相対パス に変更
ご回答有難うございます。
ここまで断言されたことで小手先で逃げることを諦める踏ん切りがつきました。
「Dreamweaverなら数十秒」で心揺れましたが、結構な価格のようですので、
まずは自力で頑張ってみようと思います。
あらためて有難うございました。
No.2
- 回答日時:
レンタルサーバでしたの機能をサポートしていればできるよ。
1) .htaccess で mod_rewrite がつかえる
2) perl か php がつかえる
1) の mod_rewrite だけどこれは
「~アカウント名/コンテンツ」以下の html ファイルへリクエストが来たときにそのリクエストを perl や php に転送させるためのもの設定ね
2) は 1) で転送されてきたリクエスト対象の html を DOM によみこんで、リンク先が「ドキュメントルート」になってちゃってる属性を全部かきかえてから DOM を出力してあげるだけのプログラム。
perl のプログラムで参考になりそうなページをみつけたから紹介しておくね。
http://blog.livedoor.jp/dankogai/lite/archives/5 …
php は google で php html dom を検索すればなにかみつかるかもね。
.htaccess の具体的な記述は親切な人がかいてくれるかも。
perl と php も誰かかいてくれないかとちょっと期待。。。
でも、おすすめは msxsl.exe(Windows) か xsltproc(Linux) でソースをかきかえてることかな?
正規表現がかけるなら、sed か perl でかきかえるほうがはやいかも。
No.1
- 回答日時:
無理です。
.htaccess に書けることで、HTMLの内部の解釈を変えることは出来ません。
href="/stlye/my.css" と書かれていると、あなたのディレクトリに置いた.htaccessは参照しないのでどうしようもありません。 ドキュメントルート/style/.htaccess に書ければ何とかなりますが無理ですよね。
従って、HTMLを全部書き直すか、独自ドメインを使えるサーバーに引っ越すしかないです。
HTMLの書き直しは、生でHTMLを書いたのならツールで一括変更出来るので簡単です。このあたりのツール http://www.vector.co.jp/vpack/pickup/win/util/te …
ホームページ作成ツールを使ったのなら、設定で何とかならないですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- Word(ワード) Google ドキュメントで改ページを挿入する方法 1 2022/05/25 19:22
- サーバー 無料のレンタルサーバで、スクレイピング(?)はできますか? 2 2022/05/07 10:09
- システム ホームページの仕組みについて 3 2022/08/16 14:33
- YouTube 2年間利用されていないGoogleアカウントは削除の方針に。youtubeの動画も消えますか? 1 2023/05/17 22:16
- Word(ワード) Word差し込み印刷 QRコードの画像が同じ仕様になる 1 2022/10/28 16:41
- Chrome(クローム) 最近のGoogle Chromeのデータ読み込みの遅延やエラーって頻発しますか? 2 2023/01/06 22:12
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phtmlって何ですか?
-
phpのファイルがブラウザで開か...
-
SSI の.shtml 以外の設定について
-
Chrome HTML Document (.html)...
-
.htaccessによるBasic認証の設...
-
1つのhtmlで複数のページを表...
-
個人HPでのある一定の来場者の...
-
FTPというのがわからないんです…
-
javaScriptって何・・・?
-
ホームページの内容を別ファイ...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
-
バッチでテキストファイルから...
-
バッチ処理でファイルの中身を...
-
カシミール3D 無料インストール
-
exeファイルを実行するとコマン...
-
コマンドプロンプト標準出力と...
-
自分で作成した重要ファイルを...
-
バッチファイルで以下のような...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Chrome HTML Document (.html)...
-
phtmlって何ですか?
-
phpのファイルがブラウザで開か...
-
1つのhtmlで複数のページを表...
-
拡張子がhtmlのファイルとshtml...
-
作成したhtmlファイルがローカ...
-
<OBJECT>に入れたテキストが表...
-
txtの中身を表示する方法教えて...
-
htmlとshtml
-
サーバーアップすると、ソース...
-
HTMLについて教えてください。
-
インクルードした要素がヘッダ...
-
JSP <%@ %> <% %>が表示されて...
-
これも「ホームページ(サイト...
-
なぜWebサイトとして表示されな...
-
1ページ当たりの適当なバイト...
-
XVLファイルがブラウザ上で表示...
-
PHPで<img>をprintすると、Nort...
-
jQueryでLoad後の表示位置について
-
.htaccessによるBasic認証の設...
おすすめ情報