userディレクトリからチルダ(~)を取り除く
http://domain/~user から http://domain/user への変更
#UserDir d:/httpd/www/public_html"
# Userディレクトリ "/user名/public_html/folder/index.html"
# http://ドメイン名/user名/folder/index.html
UserDir d:/httpd/www/public_html の行を下記と置き換える
AliasMatch ^/([^/]+)/(.*) D:/httpd/$1/public_html/$2
Userディレクトリの正規表現の結果は
# $1=user名 $2=public_html/folder/index.html となり
# D:/httpd/user名/public_html/folder/index.html にマッチすることになる
^/([^/]+)/(.*) の意味
先頭が「/」で、次の文字が「/」以外の複数文字($1)と一致
次の文字がが[/]と一致、次が任意の1文字($2)と一致
問題点
webdavを使用する場合に問題が起こる(webdavに対しても、AliasMatchが働く)
このため Alias /user名/ /home/user名/public_html を各ユーザ名に対して記述すると
ユーザホームページがチルダ付でも無しでもどちらでもアクセス可となる
拡張子の優先順位
Redirect /index.html http://ドメイン名/user名/ ディレクトリ中でのindex.html等の拡張子の優先順位
DirectoryIndex index.html index.htm index.php idex.cgi
ここで、優先順位が決まる
携帯からのアクセスで、携帯用のホームページを見せるには、次のようにする
拡張子の順番を変更して、index.php idex.cgi index.html index.htm
index.php(携帯用と一般用を分離)
if(ereg("DoCoMo",$HTTP_USER_AGENT)){
header("Location :http://aaa.com/docomo.html");
}else{
header("Location :http://aaa.com/index.html");
}
VirtualHost
複数のドメイン名を使って一つのサーバを運用する場合
httpd.confの一番下を修正する
<VirtualHost>の部分を追加修正する
1つのドメイン名に対して1つ必要です
SSI(server side include)の起動方法
下記の内容のファイルを 「.htaccess」という名前で
SSIを動かしたいディレクトリに設置する
AddHandler server-parsed .shtml
AddHandler server-parsed .html
AddHandler server-parsed .htm
Webページに下記の行を入れると、SSIが実行される
<!--#include virtual="./cgi-bin/****.cgi"-->
文字化け対策
httpd.confを修正する
adddefaultcharset SJIS