URLから/cgi-bin/blosxom.cgiをどうやったか隠せますか?
URLに/cgi-bin/blosxom.cgiを見せたくない場合、幾つかの方法があります...
-
cgi-binディレクトリでは無いディレクトリでCGIスクリプトを実行する事が可能であれば、weblogやblogまたは貴方の好きなディレクトリにblosxom.cgiを置いて下さい。こうすることで、/weblog/blosxom.cgiのような形でアクセスできるようになります。ディレクトリは貴方が選んだ場所になります。
index.cgiに名前を変えることでCGIを隠す事ができるかもしれません。この場合は/weblogのような形のサブディレクトリでウェブログに移動できます。これはウェブサーバーがindex.htmlと同様にindex.cgiがDirectoryIndexディレクティブに設定されている場合に動作します。動作する場合には名前を変更したindex.cgi(以前はblosxom.cgiだったもの)内で$urlを変更することを忘れないで下さい。例:
# What's my preferred base URL for this blog (leave blank for automatic)?
my $url = "http://www.example/weblog";
-
ウェブサーバーの環境ファイルを操作できる(Apacheではhttpd.conf)、またはローカルのsysadminにアクセスできる、またはISPが変更の余地を与えている場合には、スクリプトに対して特定のURLのエイリアスを作成するのが最も簡単な方法に思えます。例えば、Mac OS Xでは以下を/etc/httpd/httpd.confに追加します。
ScriptAlias / /Library/WebServer/CGI-Executables/blosxom.cgi
-
ウェブサーバーの環境ファイルを操作できない、またはsysadmin/ISPが変更の余地を与えていない場合、mod_rewiteが使えるのであれば望む事ができます。これは大変強力なApacheのモジュールでURLの変更をしたり等、多くの事ができるものです。
-
cgi-binディレクトリにblosxom.cgiスクリプトを置きます --このディレクトリはスクリプトの実行が許可されている場所です。
-
貴方のドキュメントディレクトリ--ウェブアクセス可能な全てのHTMLファイルが置かれている場所に.htaccessと言う名前の通常のテキストファイルを作成します。.htaccessファイルは以下のような感じになります:
RewriteEngine on
RewriteRule ^weblog/?(.*)$ /cgi-bin/blosxom.cgi/$1
ここでweblogは貴方のウェブログを置く場所で(この場合、/weblog)、cgi-binはブラウザが呼び出すスクリプトがある場所です。
-
貴方の全ての記事、フレーバーファイル、スタイルシート等はBlosxomの$datadirに置くようにします
/weblogのような"サブディレクトリ"の形では無くて / で提供するようにする他の方法があります。これはむしろ賢く、現実味がある方法で、存在しないファイルやディレクトリを指定するとエラー404が返ります。;-)。単純に.htaccessと一緒にBlosxomをドキュメントディレクトリに置けば良いです:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ blosxom.cgi/$1 [L,QSA]
ブラウザで存在しない/somethingディレクトリにアクセスすると、Blosxomは中に入ってきます。
これで、/weblogで始まるURLはrewiteエンジンにとらえられ、blosxom.cgiに渡されます。/weblog(そして追加の/)の後はpath_infoに従ってCGIに渡されます。
/weblogで始まらないどのようなURLもあるべき形でサーブされます。そのためスタイルシート、他のHTMLファイル、画像等は/whatever/ther/urlと言う形でアクセスできます。
Author: Rael Dornfest
Category: /faq/cgi
Date: 2003-07-26
[ページの先頭へ戻る] |