CSSやIMGの読み込みがルートからになっててhtdocs/案件名/index.phpみたいな階層だと読み込めない!とかindexが異常に深い階層にあるとかURLが長くて面倒だから簡単にしたい。という問題はバーチャルホストを利用すれば解決できます。
例えばhttp://localhost/会社名/案件名/index.htmlとか長いURLを
http://hoge.localhost/index.htmlとかに設定できます。
この辺、先日同僚が担当していた案件で苦労していたのでネタに頂きました。
編集するファイルは2つだけ
MAMPをいじるなんて大変そうと思うかもしれませんが編集するファイルは2つだけです。2回目からは1つのファイルしかいじりませんので思い切って編集しましょう。
まずは「httpd.conf」を修正する
MacにMANPをインストールすると/Applications/MAMP/にインストールされます。
/Applications/MAMP/conf/apache/の中に「httpd.conf」というファイルがありますので、これをテキストエディタ等で開きます。
(不安な方は念の為バックアップを取るのをおすすめします)
httpd-vhosts.confで検索をすると570行目あたりにVirtual hostsの記載があると思います。
行の頭に#がついているとコメントアウトされている状態ですのでこの#を取ります。取ったら保存して完了です。
何をしたのかというと、デフォルトではバーチャルホストの機能が封印されているので
#を取って封印を解除してあげました。
次に「httpd-vhosts.conf」を修正する
/Applications/MAMP/conf/apache/extra/の中に「httpd-vhosts.conf」というファイルがありますので、これをテキストエディタ等で開きます。
(不安な方は念の為バックアップを取るのをおすすめします)
例えば
htdocs/kk_corporate/tomato/index.htmlという階層の場合のURLは
http://kk_corporate/tomato/index.htmlとかなり長くなります。これを
http://tomato.localhost/index.htmlで表示したい場合は
httpd-vhosts.confの一番最後にでも
<VirtualHost *:80> DocumentRoot "/Applications/MAMP/htdocs/kk_corporate/tomato/" ServerName tomato.localhost </VirtualHost>
と記載してあげます。
エラーログなども取りたい場合は元々記載されている内容を参考に追加して下さい。
DocumentRootにはフォルダの場所
ServerNameにはブラウザで表示したいドメインを記載します。
出来たら保存して完了です。
MAMPの再起動
忘れては行けないのはWEBサーバーであるMAMPの設定ファイルを弄ったら必ずサーバーの再起動が必要な事です。
先日も同僚が再起動を忘れてあれ?あれ?と焦っていました。
アプリを切って立ち上げ直してもいいですが、Stop serversで止めて、Start Serverで起動し直せば大丈夫です。
例ではポート番号を80にしていますが新人君は18888を使っていましたので
<VirtualHost *:18888> DocumentRoot "/Applications/MAMP/htdocs/kk_corporate/tomato/" ServerName tomato.localhost </VirtualHost>
という具合になります。
まとめ
ServerNameに書くドメインは好きに書いて大丈夫なので例えば「a.localhost」だけとかでも大丈夫です。
でも出来れば覚えやすいドメインが良いかと思います。
案件によってはCSSなどをルートからの指定にしているものもありますので
普段から利用しておくと慌てること無く対応出来るかと思いますよ(^^)