FAQ

URLから/cgi-bin/blosxom.cgiをどうやったか隠せますか?

URL/cgi-bin/blosxom.cgiを見せたくない場合、幾つかの方法があります...

  • cgi-binディレクトリでは無いディレクトリでCGIスクリプトを実行する事が可能であれば、weblogblogまたは貴方の好きなディレクトリにblosxom.cgiを置いて下さい。こうすることで、/weblog/blosxom.cgiのような形でアクセスできるようになります。ディレクトリは貴方が選んだ場所になります。

    index.cgiに名前を変えることでCGIを隠す事ができるかもしれません。この場合は/weblogのような形のサブディレクトリでウェブログに移動できます。これはウェブサーバーがindex.htmlと同様にindex.cgiDirectoryIndexディレクティブに設定されている場合に動作します。動作する場合には名前を変更した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の変更をしたり等、多くの事ができるものです。

    1. cgi-binディレクトリにblosxom.cgiスクリプトを置きます --このディレクトリはスクリプトの実行が許可されている場所です。

    2. 貴方のドキュメントディレクトリ--ウェブアクセス可能な全てのHTMLファイルが置かれている場所に.htaccessと言う名前の通常のテキストファイルを作成します。.htaccessファイルは以下のような感じになります:

      RewriteEngine on
      RewriteRule ^weblog/?(.*)$ /cgi-bin/blosxom.cgi/$1
      

      ここでweblogは貴方のウェブログを置く場所で(この場合、/weblog)、cgi-binはブラウザが呼び出すスクリプトがある場所です。

    3. 貴方の全ての記事、フレーバーファイル、スタイルシート等はBlosxom$datadirに置くようにします

      /weblogのような"サブディレクトリ"の形では無くて / で提供するようにする他の方法があります。これはむしろ賢く、現実味がある方法で、存在しないファイルやディレクトリを指定するとエラー404が返ります。;-)。単純に.htaccessと一緒にBlosxomをドキュメントディレクトリに置けば良いです:

      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ blosxom.cgi/$1 [L,QSA]
      

      ブラウザで存在しない/somethingディレクトリにアクセスすると、Blosxomは中に入ってきます。
      これで、/weblogで始まるURLrewiteエンジンにとらえられ、blosxom.cgiに渡されます。/weblog(そして追加の/)の後はpath_infoに従ってCGIに渡されます。
      /weblogで始まらないどのようなURLもあるべき形でサーブされます。そのためスタイルシート、他のHTMLファイル、画像等は/whatever/ther/urlと言う形でアクセスできます。

Author: Rael Dornfest
Category: /faq/cgi
Date: 2003-07-26