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

paw*_*ior 1 cakephp

有没有办法将webroot文件夹保留在实际的根目录下?

解释:我应该怎么做才能实现这样的文件夹结构:

app/
cake/
css/
files/
img/
js/
plugins/
vendors/
Run Code Online (Sandbox Code Playgroud)

随着一切正常运作.

Ish*_*Ish 5

错误地将代码暴露给公众.

/project/
/project/app/ 
...
/project/css/
/project/js/
...
Run Code Online (Sandbox Code Playgroud)

但是,如果您仍想将其设置/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>
Run Code Online (Sandbox Code Playgroud)

建议:您应该坚持CakePHP的默认目录结构,因为它被证明是安全和最佳实践来完成大多数类型的应用程序.

  • 这将有效,但请注意这张海报的建议:在webroot中公开您的代码是一个坏主意.将静态内置于Web根目录是必要的,但将安全的PHP代码放入webroot中是危险的,因为您的站点很可能被黑客入侵.特别是,您应该避免在与此线程相关的任何位置发布您的网站的URL.默默无闻的安全总比无安全要好. (2认同)