全てのアクセスを.htaccess でキャッチする
篠原 隆司
処理の流れを考えるから続きます。
もし、あなたがapacheのconfを触ることができるなら、.htaccessを利用せずに、confに直接記述することができます。
まず、【 .htaccess 】と言うファイル名でテキストファイルを新規作成します。
windowsの方の場合は、先頭が . (ドット)で始まる名前のファイルは作成できません。
linuxなどで作成してコピーしてくるか、FTPソフトで、a.txtなど適当な名前のファイルをアップロードし、そこで.htaccessにファイル名を変更したあとで、ダウンロードすることでwindows上に作成することが可能になります。
【 .htaccess 】には、次のように記述します。
# サーバーエラー時の表示内容をオリジナルに ErrorDocument 403 /Transfer.php?Command=err&eno=403 ErrorDocument 404 /Transfer.php?Command=err&eno=404 ErrorDocument 500 /Transfer.php?Command=err&eno=500 ErrorDocument 503 /Transfer.php?Command=err&eno=503 RewriteEngine on # ファイルが存在するものはそのまま表示 RewriteCond %{REQUEST_FILENAME} !-f # ファイルが存在しなければ、Transfer.phpへ流す RewriteRule ^(.*)$ Transfer.php?Command=$1&%{QUERY_STRING} [L]
最後の行の、RewriteRule ^(.*)$ ですが、この場合、全てのアクセスが、Transfer.phpに流れることになります。
例えば、URIの末尾は、絶対に【 .html 】で統一するんだ! という方なら、 ^(.*)$ の箇所を、 ^(.+.html)$ に書き換えることができます。
次へ : Transfer.php から安全な場所に処理を渡す
前へ : 処理の流れを考える