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>