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

htaccessを使って、サブフォルダをルートディレクトリに
設定はできないものでしょうか?
( レンタルサーバで直接Apacheの変更はできないようです )

知り合いが勤める会社の、とても悲惨な開発環境を
なんとか解決してあげたいのです。

約500ページあるサイトを作ったそうなのですが、
まずページ毎に相対パスがバラバラ
( ../img/jpg や /aaa/img/jpg)だそうです。

さらにテストサーバは、1つのドメインに
サブフォルダをつくって確認しているそうです。

http://xxxx.com/abc/

これでは、ルートパスが http://xxxx.com/ なため、
全ページをテストサーバ用に、パスの前に /abc/ を
手動で付け足しているようなのです。恐ろしいことに。。

せめてその作業だけでもなんとかできれば、
かなりの貢献になると思います。

何か他に解決できそうなアイデアがあれば
是非教えてください。よろしくお願いします。

●質問者: よっすいー
●カテゴリ:インターネット ウェブ制作
✍キーワード:aaa ABC Apache jpg いもの
○ 状態 :終了
└ 回答数 : 4/5件

▽最新の回答へ

1 ● azumi1975
●0ポイント

http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/redirect.ht...

Redirectを使う

◎質問者からの返答

ありがとうございます。


2 ● goog20090901
●0ポイント

ルールとして、絶対パスで書くことにして、

完成後に置換ですね。

◎質問者からの返答

ありがとうございます。

それができていれば質問はしていません。


3 ● azuco1975
●0ポイント

>問題は相対パスの書き方がバラバラに書かれていて、

>置換できないからだそうです。

きちんとパターンわけしてルールを決めれば98%は出来ると思います。

残りの2%は、テストフェースで検出するしかないと思います。

Redirectをつかうとしても現状のあやふやさをみると、失敗すると思います。

最終的には、実際の運用環境でテストするんですよね?

テストしないとかですか?

◎質問者からの返答

ありがとうございます。

確かに正規表現を使うなどして数パターンにわければ

ほとんど置換できるとは思います。

が、僕がそこまで踏み込みたくはありません。

htaccessやApacheの設定について僕は詳しくないので、

知り合いがわかる範囲で、こうすれば簡単にできるらしい、

と教えてあげられればという感じでした。

テスト環境については、テスト環境自体が通じないレベルです。

システムはまったく使っていなくて、ローカル上でHTMLを

ブラウザにドロップしてチェックしているような環境だそうです。


4 ● rouge_2008
●90ポイント ベストアンサー

ありがとうございます。

お言葉に甘えて回答欄に記載させていただきます。

1.次の「.htaccess」をルートディレクトリに設置する。

RewriteEngine On
RewriteBase /

RewriteRule ^/?img/(gif|jpg|png)/([A-z0-9_-]+\.(?:gif|jpeg|jpg|png))$ /abc/img/$1/$2 [L]
RewriteRule ^/?(css|js)/([A-z0-9_-]+\.(?:css|js))$ /abc/$1/$2 [L]
RewriteRule ^/?((?:[A-z0-9/_-]+)(?:\.(?:html|htm)?))$ /abc/$1 [L]

※「.htaccess」の記述はコメントと同じです。

2.パスの前に 手動で足した「/abc」を削除する。

(※「./?」や「../?」、「/img/?」等のパスはそのままにします。

>まずページ毎に相対パスがバラバラ

( ../img/jpg や /aaa/img/jpg)だそうです。

上記の「/aaa/img/jpg」が不明なのですが、ルート直下の他のサブフォルダの画像を呼び出している場合は、画像をルート直下のサブフォルダabc内の画像フォルダに移動して、パスを「/img/jpg/?」等、ルートからの正しい相対パスに変更してください。

3.最後に、パスの前に 手動で足した「/abc」を削除します。


後は、今後の対策としてテスト用レンタルサーバの乗り換えを提案してみてはいかがでしょうか?

現在お使いのサーバーがマルチドメインに対応している場合は乗り換える必要はありませんが、もし対応していない場合は、さくらのレンタルサーバーがおすすめです。

PHPが動作しなくてもいいのでしたら、ライトプランでも十分だと思います。

http://www.sakura.ne.jp/function/matrix.html

さくらの初期ドメインを含めて、合計20個まで設定できます。

http://faq.sakura.ad.jp/faq/1032/app/servlet/qadoc?000416


独自ドメインの追加方法

さくらインターネットで取得した独自ドメインを利用する

※他社で取得した場合は、他社で取得した独自ドメインを利用するを参考にしてください。

ドメインの追加が済んだら、マルチドメインの設定をします。

マルチドメインの設定

※HP作成の契約締結の時点でサブドメインを追加して、サブフォルダにマルチドメインを割り当てておくと、時間をロスせずスムーズにいくと思います。


もちろん、今後は相対パスをルートからの相対パスに統一する必要はありますが、マルチドメインで運用した場合は、上記のような「.htaccess」を設置する必要がなくなります。

テスト用サーバーという事ですので、「.htaccess」で対処しても問題ありませんが、マルチドメインでテストするのも一つの方法だと思います。

※ただし、「.htaccess」で対処する場合、このケースでは対応できるのは一つのサイト(サブフォルダ)だけです。

サイトごとに「xximg」「yyimg」「xxcss」「yycss」等と、画像やCSSのフォルダ名を別にする場合は、2つ以上のサイトに対処可能ですが、HTMLのフォルダまで分けるのは困難だと思います・・・

関連質問


●質問をもっと探す●



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