mod_rewrite
サンプルコードは以下を省略
RewriteEngine on
phpの拡張子を隠す
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]
L2 ディレクトリでなくて
L3 foobar.phpが存在していたら
ファイルもディレクトリも存在してなかったらindex.phpを通す
フレームワークであるパターン
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
htmlファイルがあったらそれを表示
https://sample.com/test
で test.html が存在する
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [L]
useful links
confの文法チェック
$ apachectl configtest
サブディレクトリへのアクセスログを分ける
SetEnvIf Request_URI "/sample/" sample
CustomLog "logs/access_log" combined env=!sample
CustomLog "logs/sample-access_log" combined env=print