などのときに、自分の環境でだけそのドメイン名でサーバーにアクセスする方法:
hostsという、IPアドレスとホスト名の対応が書かれているファイルを書き換える。
たとえば、mydomain.comというドメインを取得し、レンタルサーバーも借りたが今は自宅サーバーで運用していて、一時的にレンタルサーバーへmydomain.comというURLでアクセスしたいときは、hostsファイルに次のように追加する:
レンタルサーバーのIPアドレス mydomain.com
これで、一時的にmydomain.comのホスト名でレンタルサーバーへアクセスできるようになる。用が済めばその行を削除する。
hostsファイルは、Windowsの場合はWindowsディレクトリ以下を検索すれば見つかる。
同じURLで、ブラウザのUser-Agentにより自動的に適切なページを表示する方法。mod_rewriteを使用。
次のようなURL構造であるとする。
uttsu.com/
games/
docs/
ここで、各ディレクトリごとに(必要ならば)携帯端末用のHTMLファイルを置くディレクトリを作る。そのディレクトリで表示する携帯端末用のファイルが1つだけなら、index_m.htmlのようなファイルを用意してもよい。
uttsu.com/
index_m.html
games/
m/
docs/
m/
各ディレクトリ(uttsu.com/, games/, docs/)の.htaccessに次のように記述:
RewriteEngine on
# set mobile
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^J-PHONE/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^UP.Browser/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^KDDI-.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASTEL/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^PDXGW/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^L-mode/.*
RewriteRule .* - [E=HTTP_MOBILE:true]
# for mobile
RewriteCond %{ENV:HTTP_MOBILE} ^true$
RewriteRule !^m/ - [C]
RewriteRule (.*) m/$1
index_m.htmlのようなファイルを用意した場合には、次のように記述:
# set mobile
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^J-PHONE/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^UP.Browser/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^KDDI-.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASTEL/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^PDXGW/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^L-mode/.*
RewriteRule .* - [E=HTTP_MOBILE:true]
# for mobile
RewriteCond %{ENV:HTTP_MOBILE} ^true$
RewriteRule ^$ index_m.html [L]
これで、同じURLで、アクセスしてきたUser-Agentにより適切なページが表示される。
URLに.htmlという文字を出したくない場合(uttsu.com/games/shooting などのようなURLを使いたい場合)は、次のように記述(ただし、携帯端末のみ。PCはまた別途設定):
RewriteEngine on
# set mobile
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^J-PHONE/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^UP.Browser/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^KDDI-.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASTEL/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^PDXGW/.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^L-mode/.*
RewriteRule .* - [E=HTTP_MOBILE:true]
# for mobile
RewriteCond %{ENV:HTTP_MOBILE} ^true$
RewriteRule ^$ m/
RewriteCond %{ENV:HTTP_MOBILE} ^true$
RewriteRule !^m/ - [C]
RewriteRule (.*) m/$1.html
mod_rewriteでURLを内部的に書き換える処理は、サーバー内で無限ループに陥りやすくて危険です。テストはローカルの環境で。