.htaccess / mod_rewrite.c : CakePHP application in a subfolder where the root folder hosts a WordPress installation

I’d like to deploy my CakePHP-app from localhost to the webserver, but I get Error 500.

My Folder structure looks like this (note: the Cake-app is not in the root…). The .htaccess-files (0) – (3) are according to this post [SO]:, and as this is a CakePHP&Wordpress server, I tried this advice here, too [SO].
The app is obviously located in the CAKEAPP-Folder, where a subdomain cakeapp.mydomain.com points at.

Read More
ROOT
├── .htaccess (0)
├── CAKEAPP
│   ├── .htaccess (1)
│   ├── app
│   │   ├── .htaccess (2)
│   │   ├── WEBROOT
│   │   │   ├── .htaccess (3)
├──{wordpress-files}

(0) .htaccess in the ROOT FOLDER

    Action php /cgi-php52/php
AddHandler php52 .php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

php_value memory_limit "128M"

#BEGIN Image Upload HTTP Error Fix
<IfModule mod_security.c>
<Files async-upload.php>


</Files>
</IfModule>
<IfModule security_module>
<Files async-upload.php>


</Files>
</IfModule>
<IfModule security2_module>
<Files async-upload.php>


</Files>
</IfModule>
#END Image Upload HTTP Error Fix

(1) .htaccess in the CAKEAPP-Folder

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule    ^$ app/webroot/    [L]
RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

(2) .htaccess in the ROOT/CAKEAPP/APP-Folder

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /app/
RewriteRule    ^$    webroot/    [L]
RewriteRule    (.*) webroot/$1    [L]
</IfModule>

(3) .htaccess in the ROOT/CAKEAPP/APP/WEBROOT-Folder

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

Related posts

Leave a Reply

2 comments

  1. The following works for mydomain.com/cakeapp:

    (0) .htaccess in ROOT FOLDER

    #Action php /cgi-php52/php
    #AddHandler php52 .php
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /
     RewriteRule ^cakeapp/(.*)$ /cakeapp/$1 [L,QSA]
     RewriteRule ^index.php$ - [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    

    (1) .htaccess in the CAKEAPP-Folder

    <IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteBase /cakeapp
     RewriteRule ^$ app/webroot/ [L]
     RewriteRule (.*) app/webroot/$1 [L]
    </IfModule>
    

    (2) .htaccess in the ROOT/CAKEAPP/APP-Folder

    <IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteBase /cakeapp
     RewriteRule ^$ webroot/ [L]
     RewriteRule (.*) webroot/$1 [L]
    </IfModule>
    

    (3) .htaccess in the ROOT/CAKEAPP/APP/WEBROOT-Folder

    <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /cakeapp
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^(.*)$ index.php [QSA,L]
    </IfModule>
    
  2. I have two project one main project which is running fine but now i want to run another cakephp project on the same domain.

    So you are in the write place this tutorial will help you to run a cakephp on a sub domain

    1. First you have change the .htaccess on /httpdocs/
      RewriteEngine on
      RewriteBase /
      RewriteRule    ^$ cake_sub_project/app/webroot/    [L]
      RewriteRule    (.*) cake_sub_project/app/webroot/$1 [L]
      
      

      This two new line needs to add on your main .htaccess file. Here “cake_sub_project” is the sub project

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

    Now goto your sub folder and make sure you have changed the .htacces on the following directory.

        cake_sub_project/
        cake_sub_project/app
        cake_sub_project/webroot
        

    2. Need to edit the .htaccess from /httpdocs/cake_sub_project as following


    RewriteEngine on RewriteBase /cake_sub_project/ RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L]
    1. Need to edit the .htaccess from /httpdocs/cake_sub_project/app as following

         
      
      RewriteEngine on
      RewriteBase /cake_sub_project/app/
      RewriteRule    ^$    webroot/    [L]
      RewriteRule    (.*) webroot/$1    [L]
      
      
    2. Need to edit the .htaccess from /httpdocs/cake_sub_project/app/webroot as following

         
      
      RewriteEngine On
      RewriteBase /cake_sub_project/app/webroot/
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]