CakePHPをヴァーチャルホストのサブディレクトリで運用するときの.htaccessの書き方 (CakePHP1.3)

サイト構成:

---/virtual/ip/home(Document Root)

    ---www.site1.com

    ---www.site2.com

        ---folder1

        ---folder2

        ---cake

            ---app

                ---webroot

                   .htaccess(webroot)

            .htaccess(app)

        .htaccess(cake base)

    ---www.site3.com

   .htaccess(Document Root)

 

Document Rootは /virtual/ip/home とします。

/virtual/ip/home の .htaccess:

RewriteCond %{HTTP_HOST} ^(www.site1.com|www.site2.com)

RewriteCond %{REQUEST_URI} !^/(www.site1.com|www.site2.com)

RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L]

 

/virtual/ip/home/www.site2.com/.htaccess:

RewriteEngine On

RewriteRule ^member_site$  cake/app/webroot/ [L]

RewriteRule ^member_site/(.*)$ cake/app/webroot/$1 [L]

 

/virtual/ip/home/www.site2.com/cake/.htaccess削除

/virtual/ip/home/www.site2.com/cake/app/.htaccess :

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteRule    ^$    webroot/    [L]

    RewriteRule    (.*) webroot/$1    [L]

    RewriteBase /www.site2.com/cake/app

 </IfModule>

/virtual/ip/home/www.site2.com/cake/app/webroot/.htaccess :

<IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

    RewriteBase /cake/app

</IfModule>