mod_rewriteの設定
mod_rewriteを設定することで、
http://example.com/adiary/adiary.cgi/123
というURLを
http://example.com/adiary/123
と、adiary.cgiを含めない形にすることができます。
環境の確認
- Apacheを利用していて .htaccess が許可されている
- Apacheに mod_rewrite がインストールされている
レンタルサーバなど情報がない場合は、試しに
RewriteEngine On
と書いた .htaccess を置いてみてください。アクセスして「500 Internal Server Error」にならなければ、mod_rewriteが利用できるかもしれません。*1
設定方法
http://example.com/adiary/adiary.cgi に adiary が設置されている場合、次のように記述して adiary.cgi と同じディレクトリに置きます。
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ adiary.cgi/$1 [L]
ログイン後の管理メニューの下にも設定のヒントが書かれています。参考にしてください。
ディレクトリをまたがる mod_rewrite
Apache 2.xの場合です。
CGI設置場所 : http://example.com/adiary/adiary.cgi
見せたいURL : http://example.com/
以下の .htaccess を http://example.com/ に相当するディレクトリに設置します。
RewriteEngine On RewriteRule ^adiary/ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ adiary/$1 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^adiary/(.*)$ adiary/adiary.cgi/$1 [L]
- パス/adiary/ にある .htaccess では mod_rewrite を設定しないでください。
- pub/ から adiary/pub/ へシンボリックリンクを貼らないとアルバムでゴミ箱内の画像が表示されないことがあります。
$ ln -s adiary/pub pub