Ste*_*son 2 php .htaccess virtualhost cakephp-2.0
我一直在localhost上构建,所有这些东西都很完美.现在尝试在共享主机上加载该站点.我已经解决了大部分问题,实际上有一个工作网站,但没有任何CSS.
布局:我的应用程序位于:/ home/cake/app
public_html位于:/ home/public_html
在public_html/index.php中,我能够摆脱丢失文件错误的唯一方法就是这样做......
require '../cake/app/webroot' . DIRECTORY_SEPARATOR . 'index.php';
Run Code Online (Sandbox Code Playgroud)
public_html中的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我的应用程序是从命令行中烘焙出来的.通过链的所有index.php和.htaccess文件都是不受影响的.
/cake
/cake/webroot
/cake/app
/cake/app/webroot
Run Code Online (Sandbox Code Playgroud)
它只是找不到所有css和js文件的路径.在我的default.ctp中,我使用了标准的html帮助程序链接.
echo $this->Html->css('default');
Run Code Online (Sandbox Code Playgroud)
我正处于众所周知的绳索的尽头.任何帮助赞赏.在localhost上,我将apache目录指向/ cake/app,但我很确定我无法访问共享主机上的apache配置文件,因此我将public_html index.php指向/ cake/app .可能不对,但感觉自从网站开始工作以来我正朝着正确的方向前进.
你的所有CSS和JS都应该在app/webroot
目录中.
听起来你错误地设置了你的虚拟主机.(这就是CSS工作public_html
但不在webroot
目录中的原因).
基本上,我们只允许访问我们的应用程序app/webroot/
.这将加载由提供的index.php
内部来加载每个请求.webroot
cakePHP
controllers
您的虚拟主机文件应如下所示:
<VirtualHost *:80>
# Correct: Notice the "/app/webroot/"
DocumentRoot "/path/to/app/public_html/app/webroot/"
# Below is INCORRECT
# Incorrect: DocumentRoot "/path/to/app/public_html/app/"
ServerName yourdomain.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
现在..从外界访问的唯一的目录是在一切webroot
,这可能是JS
,CSS
,Images
,Files
或者你需要的任何其他资产.
这是它应该如何设置,你不希望人们能够访问你的文件webroot
(即所有其他CakePHP文件).
在共享主机提供程序上,您将需要稍微不同的设置(您无法访问共享服务器的vhost).这解释了OP所说的略微不同的目录结构.有关在共享主机上部署cakephp的更多信息,请阅读此处.
http://bakery.cakephp.org/articles/gedm/2009/08/29/installing-cakephp-on-shared-hosting
而不是index.php
将webroot包含在另一个index.php(在你的内部public_html
)中,考虑将webroot文件夹entirley更改为你的public_html
.
有关更改cakephp webroot文件夹的更多信息,请 单击此处:CAKEPHP - 将默认路径更改为webroot
归档时间: |
|
查看次数: |
11384 次 |
最近记录: |