DocumentRootとHTMLヘルパー

cakePHP付属のHTMLヘルパーについて。

cakeのwebroot != wwwサーバのDocumentRootの環境では、
アンカー生成ヘルパーの$html->linkが使えない。

第2引数の$urlに相対パスで指定したURLを渡してやると
勝手にwwwサーバのDocumentRootからの相対パスを補完したURLに変換してしまうからだ。*1
文章で書くとややこしいので具体例を下記に。

ドメイン名
・・・ example.jp
wwwサーバのDocumentRoot
・・・ /var/www/
cakePHPのwebroot
・・・ /var/www/cake/webroot/

という環境で、registアクションを起動するリンクを生成しようとし
$html->link('登録','/regist')とした出力結果はこうなる

<a href="http://www.example.jp/cake/webroot/regist">

これではcakeアクションにwebroot、registという2つのパラメータを渡したように解釈されてしまいよろしくない。
本当は下のようになってほしい。

<a href="http://www.example.jp/regist">

一応解決策としては、

  1. 第2引数の$urlにhttp:から始まるパスを指定する。
  2. ヘルパーを使わずリンクを手書きする

ってのがあるけど、どうも気持ちよくない。

cakeのwebrootとwwwサーバのDocumentRootが違う環境ってのは結構ありそうなんだけど、みんなどうしてるんかな?

(追記)
CakePHPでmod_rewriteを使わない場合の設定
これが答えかな?
家帰ったら試してみよう。

*1:ちなみにURLを'http:'から指定してやると、パスの補完は行われない