Reputation: 1261
I have a problem with cakephp, I can't find a way to get cakephp working in a subdirectory. I have a webpage that resides at www.example.com
and I want to have cakephp application on www.example.com/cake
. www.example.com
is a virtual host and cake
is it's subdirectory where all of the cake files and directories are stored.
The problem is that when I go to www.example.com/cake
it requests a CakeController and has no stylesheets loaded.
When I go to www.example.com/cake/users/register
(= UsersController::register()
) it shows the right site but again without CSS.
So I need two things...to get www.example.com/cake
to display the home page and to get the stylesheets loadedd.
Don't you know how to achieve that?
Thanks in advance
Upvotes: 0
Views: 4472
Reputation: 6571
Did you read this page in the book and make the appropriate changes in /app/webroot/index.php
?
Edit:
The problem is that when I go to www.example.com/cake it requests a CakeController and has no stylesheets loaded.
This seems to indicate that you have the wrong .htaccess in your site's root (www, htdocs ,public_html or whatever) as it's trying to process the request into the CakePHP structure.
It should not look like this
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Why don't you make life easy for yourself and put CakePHP in the root and move the page(s) that reside at www.example.com
into app/webroot. That way it'll behave exactly as you want, i.e:
www.example.com/staticPage.html
- displays the static page.
www.example.com/users
- displays the users index
Files in webroot are served exactly as if they were in the site's root. Think of the css and javascript files.
Upvotes: 3
Reputation: 2385
Most likely your mod_rewrite is not enable in Apache on your hosting account. Check with your host. Another possible problem described below:
Did you change the paths in webroot/index.php?
You need to adjust the paths in that file to point to the Cake core files folder based on your hosting providers directory path.
For example,
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', 'home' . DS .'w3dev' . DS . 'public_html' . DS . 'clients' . DS . 'folderName' . DS . 'remote' . DS . 'v1.1' . DS . 'cake');
}
And
if (!defined('APP_DIR')) {
define('APP_DIR', basename(dirname(dirname(__FILE__))). DS . 'v1.1' . DS . 'app');
}
The above all depends on your directory on your hosting server account. As your host for your root path data, so you can point it accordingly.
Upvotes: 3
Reputation: 8344
I'm not familiar with Cake, but it is almost certainly some sort of path issue. Verify that the path to your stylesheets is accurate.
I know that some frameworks will use a base_url() function(or something similarly named) that returns a config value, you should check your config to ensure that the base URL is set properly.
Upvotes: 0