![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
初歩的な質問かもしれませんが、よろしくお願いします。
現在、webサイトを制作中で、ローカルでテストできるように、自分のPCにXAMPPをインストールしました。
本番サイトのトップページURLが、http://example.comであるとすると、このページは
ローカルテスト上では、http://localhost/example.comとブラウザには表示されます。
つまり、あたまに「localhost/」が付く分だけ、本番サイトとは、1階層のズレが生じます。
このhttp://example.comのトップページで、http://example.com/about.html でアクセスできるページへのリンクを貼る場合、
「http://example.com/about.html」という絶対パスでリンクを貼ると、ローカルから本番へと飛んでしまうことになります。
なので、リンクを貼る場合、絶対パスではなく相対パスで貼る必要があると感じているのですが、
その書き方がよく分からないのです。
http://example.com/about.html というページのトップページからの相対パスは、
本番サイト上では、「./about.html」と表記でき、
(http://example.com/about.html だから1階層下)
ローカルテスト上では、「././about.html」と表記することになるので、
(http://localhost/example.com/about.html だから2階層下)
テスト後、本番にアップする際にいちいちパスを修正しなければならなくなり、これだと不便です。
テストしてOKだったHTMLを修正せずに、そのまま本番のサーバーへとアップする方法がありましたら、教えて下さい。
・PCのOS:winXPsp2
・dreamweaver CS3(win)
・phpファイルもアップすることがあります。
No.3ベストアンサー
- 回答日時:
Apacheでバーチャルホストを設定すればいいんじゃない?
そうすれば、下のように分けられます。
http://example.com/about.html
http://example.net/about.html
http://example.info/about.html
↓
http://www1.localhost/about.html
http://www2.localhost/about.html
http://www3.localhost/about.html
この回答への補足
回答ありがとうございます。
「バーチャルホスト」の設定で解決できるのでは、というアドバイスをありがとうございます。
早速、この方向でググってみます!
No.4
- 回答日時:
# 私は XAMPP を知らないので、考え方だけ。
「./」の意味を誤解されている様で、それが話がこんがらがる原因かと思いますが、それは説明の中で。
ローカルでテストOKのファイルを無修正で本番サーバーにアップして良い様にするにはいくつも方法があります。
1 正しい相対URLを使う
"./foo.html" と "foo.html" は等価です。 "././foo.html" も等価です。 だから、ローカルで "./foo.html" と書いてうまくいく場合、そのまま本番サーバーにアップしてもうまく行くはずです。
http://localhost/example.com/dir1/foo.html から http://localhost/example.com/dir2/bar.html にリンクする場合は、 "../dir2/bar.html" という相対URLを書きましょう。 "../dir2/bar.html" は、http://example.com/dir1/foo.html から http://example.com/dir2/bar.html への相対URLとしても正しいのでそのままアップ可能です。
2 ローカル環境を変える
http://example.com/ と http://localhost/example.com が対応付けされてしまうのは、あなた自身がローカルにWebサーバーをインストール/セットアップする際に選択した結果では無いでしょうか? http://localhost/ に対応する様に変更できないでしょうか? そうすれば、前項1 の相対URLの方法に加えて "/dir1/foo.html" の様な「ホスト名を省略した絶対パス」を書く事ができる様になります。 ただし、他の本番サーバーのためのテストにも対応したいなら上級者向けの設定が必要になります。
3 場合によっては環境変数とかで細工できますが、これも上級者向けです。
質問中にURLの例が書かれていたので、回答も書きやすかったです。 ありがとうございます。
この回答への補足
回答をありがとうございます。
>"../dir2/bar.html" は、http://example.com/dir1/foo.html から http://example.com/dir2/bar.html への相対URLとしても正しい
そうですね、
「1つ上に上がって、水平移動して、1つ下に下がる」
なんていう相対パスならば問題なさそうなのですが。。。
>あなた自身がローカルにWebサーバーをインストール/セットアップする際に選択した結果では無いでしょうか?
おそらく、そうなんだと思うのですが、apacheの設定がよく分からなかったもので、、、このように迷子になっています。
>他の本番サーバーのためのテストにも対応したいなら上級者向けの設定が必要に
複数のサイトを同様に管理しようと思っているので、回答#3さんのアドバイス「バーチャルホスト」の設定というのを調べてみようと思います。
また何かありましたら、よろしくお願いします。
No.2
- 回答日時:
windowsのhostsに
127.0.0.1 localhost exsample.local
^^^^^^^^^^^^^^あなたのドメイン名に.localでもつけて
C:\WINDOWS\system32\drivers\etcに保存する。
(hostsのサンプルはC:\WINDOWS\system32\drivers\etcにあるhosts.sam)
httpd.confのVIRTUALHOSTの項目を追加する。
<VIRTUALHOST 127.0.0.1>
DocumentRoot "/home/exsample.com"
ServerName exsample.local
ServerAdmin webmaster@exsample.com
AddHandler server-parsed .shtml
Options +IncludesNoExec
ErrorLog logs/exsample_error_log
CustomLog logs/exsample-access_log common
</VIRTUALHOST>
こんなところかな・・・
私は、複数のローカルサーバーをVIRTUALHOSTでテストするので、こういう形、なお、hostsには9つまで追記できますが、それを越す場合は行を変えて
127.0.0.1 abc.com
等と続ければよい
私はCygwinをインストールした別ドライブ上に、apacheやperl,phpをUNIXサーバーの標準的な配置でインストールしている。
この回答への補足
回答をありがとうございます。
私には、ちょっと難解でしたので、補足的に質問をさせて頂きます。
>windowsのhosts
見つけました。
>127.0.0.1 localhost exsample.local
http://aaa.com だとしたら、
127.0.0.1 localhost aaa.local
と記述すればいいのでしょうか?
それとも、
127.0.0.1 localhost aaa.com.local
でしょうか。
>(hostsのサンプルはC:\WINDOWS\system32\drivers\etcにあるhosts.sam)
これはどういう意味でしょうか?
hosts.samというのは見当たらないのですが、必要なのでしょうか?
>httpd.confのVIRTUALHOSTの項目を追加する。
C:\xampp\apache\conf の中にある httpd.conf のことですね?
>
<VIRTUALHOST 127.0.0.1>
DocumentRoot "/home/exsample.com"
ServerName exsample.local
ServerAdmin webmaster@exsample.com
AddHandler server-parsed .shtml
Options +IncludesNoExec
ErrorLog logs/exsample_error_log
CustomLog logs/exsample-access_log common
</VIRTUALHOST>
これは一体、何のことやら。。。
しつこいですが、http://aaa.com の場合は、
<VIRTUALHOST 127.0.0.1>
DocumentRoot "/home/aaa.com"
ServerName aaa.local
ServerAdmin webmaster@aaa.com
AddHandler server-parsed .shtml
Options +IncludesNoExec
ErrorLog logs/aaa_error_log
CustomLog logs/aaa-access_log common
</VIRTUALHOST>
という書き方になるのですよね?
ちなみに、教えて頂いたhttpd.confの記述方法は、
http://www.studio-no9.com/sb/log/eid112.html
こちらのサイトで紹介しているhttpd.confの記述方法と異なるので、
なんでだろう?
と思っています。
上記サイトを参考にしてやってみたのですが、よく分からず現在に至るわけですが、両者の違いはどういうところにあるのでしょうか。
初歩的なことをざっくり質問している気がして恐縮なのですが、
どうぞよろしくお願いします。
>こんなところかな・・・
で、上記処理をすると、一体、何がどうなるんでしょうか?(汗)
肝心なことが分からなくて困ってしまいました。
何らかのカタチで問題は解決されるのでしょうが、どう解決されるのかが分からないので、教えて頂けると助かります。
ちなみに、私はapache等の知識は皆無ですので、分かりやすく教えて頂けるとありがたいです。。
よろしくお願いします。
No.1
- 回答日時:
ドメインを取得されているか、サブドメインによるサービスを利用されているなら、(言い換えると、
http://example.com/~yourname/ という形式でないのなら)全ての URL を / から始まるものに書き換えるのが手っ取り早いです。
/about.html
/help/index.html
としておけば、
http://localhost/about.html
http://localhost/help/index.html
にも
http://example.com/about.html
http://example.com/help/index.html
にもなります。
どうしても、http://localhost/example.com/ にしないといけない、もしくは変更の仕方がわからないのであれば、Apache のドキュメントルートの設定に問題があると思います。(XAMPP のデフォルトの設定がどうなっているかは、知りませんが、中身は Apache なので)
質問の意図を取り違えていたらすみません。
この回答への補足
早速の回答、ありがとうございます。
>全ての URL を / から始まるものに書き換えるのが手っ取り早いです。
まだ試していませんが、この方法はなかなかグッドな気がします。
ただし、複数のサイトを同様に管理したいので、これだと難しいのかな?と思っています。
つまり、example.netや、example.infoなどのサイトにおいても、同様にローカルテストをしたいと思っているのです。
http://example.com/about.html
http://example.net/about.html
http://example.info/about.html
↓
http://localhost/about.html
というように、1:1対応でなくなってしまいますからね。。。
その意味で、
>どうしても、http://localhost/example.com/にしないといけない
ということになるのかもしれません。
ドメインについては、独自ドメインを取得しています。
読みやすく理解しやすい回答をありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- ドメイン・サーバー・クラウドサービス 自作サイトをサーバーにアップロードしたのですが… 2 2022/11/08 18:12
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- Oracle TOPページ以外の、301リダイレクトの記述設定について 1 2022/08/12 17:14
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- Visual Basic(VBA) VBA Twitter 高度な検索 日付 単語 リンクをOutlook で送信 2 2022/06/18 18:36
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB初心者。小数点以下の表示で...
-
<html>perlスクリプト</html>
-
IEで「file://」プロトコルが使...
-
拡張子'html'と'htm'はどっちが...
-
外のhtmlに飛ばせる。
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
チェックボックスの返す値
-
「value」に2つの値をセットす...
-
INPUT TYPE
-
WEBページを強制的に横画面で見...
-
[HTML]プルダウンメニューの横...
-
FORMのselectの選択肢を最初か...
-
チェックボックスとセレクトボ...
-
横スクロールを縦スクロールに...
-
CGI経由でのPDFファイルをダウ...
-
掲示板の文字色指定について
-
JNAVIから提供されたメー...
-
メールフォームのプルダウンメ...
-
(CGI)お気に入り登録やアドレス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB初心者。小数点以下の表示で...
-
ブックマークからのアクセスを...
-
vsftpd+sslでアップロードできない
-
IEで「file://」プロトコルが使...
-
HTMLでテキスト読み込み
-
Lightboxの表示位置に関して質...
-
ローカルテストサーバーと本番...
-
大分湯布院の観光地とおみやげ
-
FORMを中央に表示したい
-
大和ネクスト銀行の銀行コード
-
JEditorPaneでwebページを表示
-
拡張子'html'と'htm'はどっちが...
-
proftpdで困ってます。
-
index.html(トップページ)か...
-
<html>perlスクリプト</html>
-
外のhtmlに飛ばせる。
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
INPUT TYPE
おすすめ情報