2014-02-27 24 views
1

为客户端构建CakePHP网站,它在我的本地环境中完美运行,并在我的服务器上进行测试。但是,当我将它转移到客户端的site5服务器时,它只返回404错误。CakePHP与Site5服务器上的.htaccess文件相关问题

一些修改.htaccess文件后,我能得到的默认着陆页做工精细: http://174.120.222.98/~sty/

我有问题,就是只有默认的登陆页面可以找到。所有的子页面仍然返回404错误(例如:NavBar中的“NEW STUDENTS”绿色背景链接)。

我已经改变了根/ .htaccess文件到:

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

没有RewriteBase /~sty默认着陆页是404

我已经改变了根/应用/ .htaccess文件到:

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

没有这个改变,没有任何webroot中的文件加载(images/styles/js)。

这两个文件似乎只是我需要的默认页面,我甚至可以删除root/app/.htaccess文件,并且着陆页看起来很棒。所以我假设应用程序文件是管理我的子页面的文件。没有我对我所做的似乎工作,它当前设置为:

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

我试图RewriteBase\\~sty\~sty\app并没有行至今都没有我的变化似乎工作。

帮助我StackOverflow,你是我唯一的希望。

+1

启用重写日志,并亲自看看发生了什么。 – CBroe

+0

我喜欢看重写日志的想法,但从来没有能够获得它的访问权限。 我还没有“解决”这个问题,但我们重定向了子域名dev。到〜sty目录,它允许默认的CakePHP .htaccess文件起作用。 – Grockell

回答

0

mod_rewrite并没有按照你的服务器上启用,所以你必须在你的应用与.htaccess文件来处理这个在您的根目录

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

和其他的.htaccess文件夹

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

另一个在您的网络根文件夹

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule>