如何在CakePHP中更改webroot的位置?

如何在CakePHP中更改webroot的位置?,cakephp,Cakephp,有没有办法让webroot文件夹保持在实际根目录下 解释:我应该如何实现这样的文件夹结构: app/ cake/ css/ files/ img/ js/ plugins/ vendors/ 一切正常运行。我知道您希望简化工作流程,对经常使用的目录进行顶级访问。但是,将主源代码放在web根目录中是不明智的 您可以改为使用链接到静态文件夹(css,img,js,等等)。我知道您希望简化您的工作流程,对您经常使用的目录进行顶级访问。但是,将主源代码放在web根目录中是不明智的 您可以改为使用链接到

有没有办法让webroot文件夹保持在实际根目录下

解释:我应该如何实现这样的文件夹结构:

app/
cake/
css/
files/
img/
js/
plugins/
vendors/

一切正常运行。

我知道您希望简化工作流程,对经常使用的目录进行顶级访问。但是,将主源代码放在web根目录中是不明智的


您可以改为使用链接到静态文件夹(
css
img
js
,等等)。

我知道您希望简化您的工作流程,对您经常使用的目录进行顶级访问。但是,将主源代码放在web根目录中是不明智的


您可以改为使用链接到静态文件夹(
css
img
js
,等等)。

您将代码公开是一个错误

/project/
/project/app/ 
...
/project/css/
/project/js/
...
但是,如果仍要将
/project/
设置为webroot,请将其放入
.htaccess
文件中

// /project/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app/webroot/index.php?url=$1 [QSA,L]
</IfModule>
///project/.htaccess
重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$app/webroot/index.php?url=$1[QSA,L]

建议:您应该坚持CakePHP的默认目录结构,因为它是经验证的安全的最佳实践,适用于大多数类型的应用程序。

您将代码公开是一个错误

/project/
/project/app/ 
...
/project/css/
/project/js/
...
但是,如果仍要将
/project/
设置为webroot,请将其放入
.htaccess
文件中

// /project/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app/webroot/index.php?url=$1 [QSA,L]
</IfModule>
///project/.htaccess
重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$app/webroot/index.php?url=$1[QSA,L]

建议:您应该坚持CakePHP的默认目录结构,因为它是经验证的安全的最佳实践,适用于大多数类型的应用程序。

为什么将图像、脚本和css文件放在webroot中是一个错误?安全问题在哪里?如果您将
/project/
设置为webroot,则只需访问此
http://example.com/app/AppController.php
http://example.com/app/models/User.php
你真的不想被这样浏览。好吧,这是有道理的;]如果我键入
http://example.com/images/
进入地址栏,进入
http://example.com/app/webroot/images
-是否有办法解决此问题?请确保已创建了
/project/images/
。这是htaccess文件中的第一条规则。这会起作用,但请注意本海报的建议:在webroot中公开代码是个坏主意。在web根目录中放置静态是必要的,但是在hte webroot目录中放置安全的php代码是危险的,因为您的站点很可能被黑客攻击。特别是,您应该避免将站点的URL发布到与此线程相关的任何位置。默默无闻的安全性总比完全没有安全性好。为什么将图像、脚本和css文件放在webroot中是一个错误?安全问题在哪里?如果您将
/project/
设置为webroot,则只需访问此
http://example.com/app/AppController.php
http://example.com/app/models/User.php
你真的不想被这样浏览。好吧,这是有道理的;]如果我键入
http://example.com/images/
进入地址栏,进入
http://example.com/app/webroot/images
-是否有办法解决此问题?请确保已创建了
/project/images/
。这是htaccess文件中的第一条规则。这会起作用,但请注意本海报的建议:在webroot中公开代码是个坏主意。在web根目录中放置静态是必要的,但是在hte webroot目录中放置安全的php代码是危险的,因为您的站点很可能被黑客攻击。特别是,您应该避免将站点的URL发布到与此线程相关的任何位置。默默无闻的安全总比没有安全好。