質問: こんばんは。 この度はCakePHPの本体をDocumentRoot以外に配置した際の CakePHPへのURLからのアクセス方法についてお聞きしたいと思っています。 サーバーはCentOS、CakePHPは2.4.9を使用しています。 まずサーバーの公開ディレクトリ(DocumentRoot)が以下のように htmlディレクトリ配下だとします。 /var/www/html その上で、CakePHP本体を公開ディレクトリに置くのはセキュリティ上 まずいため、CakePHP本体が入っているフォルダである「app」を 公開ディレクトリhtmlのひとつ上の階層の非公開ディレクトリのwwwの中の webappというディレクトリ内に配置するとします。 /var/www/webapp/app 次に、このままではCakePHPのwebrootにアクセスできなくなってしまうと 考えたので公開ディレクトリのhtmlに非公開ディレクトリ内への シンボリックリンクをLinuxの「ln -s」コマンドにて下記のように作成しました。 /var/www/html/linktocake 上記にて、www.example.com/linktocakeというURLを叩いた際に CakePHP内のwebrootへアクセスすることができました。 しかしながら、現状webrootへアクセスはできるのですが、このままでは CakePHPを非公開ディレクトリ内に置いてしまったため 下記のように各Controllerのアクションへアクセスできなくなってしまいました。 www.example.com/user/index Controllerのアクションへアクセスするためには 同様に、公開ディレクトリ配下にCakePHP本体が入っているappディレクトリへの シンボリックリンクを同様に作成すればよろしいのでしょうか?
回答: Web サーバーには何をお使いですか?(Apache、nginx など) 各サーバーに応じてリライトの設定を行ってください。 例えば Apache なら .htaccess をディレクトリ内に設置することで制御できます。