gpt4 book ai didi

php - 如何使用/web 以外的 web 根目录部署 yii2

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:01 25 4
gpt4 key购买 nike

我正在做一个 yii2 项目,我想将它部署到一个 apache 服务器上,整个网站应该存在于/public_html 目录中,而/public_html 是该主机的网络根目录。问题在于 yii2 期望 web 根目录为/web,并且它期望大多数站点层次结构存在于/web 目录之外。

我宁愿不必将 webroot 更改为/public_html/web,对于 future 的项目,这可能不是一个选项。那么,有没有一种方法可以将整个网站层次结构放在/public_html 中,并且网站仍然可以正常工作?

我尝试创建一个包含以下内容的/public_html/.htaccess 文件:

    RewriteEngine on
RewriteCond %{REQUEST_URI} !web/
RewriteRule (.*) /web/$1 [L]

一开始这似乎工作正常。/public_html/web 之外的任何内容都不可访问,/web 子目录中的文件,例如/web/js/signup.js 可以通过 url http://localhost/js/signup.js 访问。 , 但这导致我的路由规则(在本地系统上设置,我可以让 Web 根目录指向/web)不再被识别。

因此,我很乐意使用 .htaccess 路由的替代方案,或者关于如何修复路由规则以使 .htaccess 路由正常工作的建议。

编辑澄清

我有一个托管服务提供商,其网络根目录是 ~/public_html 。 Yii 有文档说明您可以将 www 重命名为 public_html,并且将通常位于/www 之外的所有内容都放在 ~ 中,以及 Linux 通常放在 ~ 中的各种点文件和用户文档。我更愿意将所有与站点相关的目录放在一起(在 webroot 下)。

作为替代方案,也可以采用双目录结构,如下所示:

~/
|--- (Various dotfiles and subdirectories unrelated to the web site)
|--- yii - Contains all subfolders that should be outside of the web root
|--- commands
|--- config
|--- controllers
|--- (etc...)
|--- public_html - Contains everything that can be within the web root.
|--- (etc...)

最佳答案

这个问题已经被问了很多次,以至于他们制作了一个 page在 Yii2 文档中找到它。

这个问题我个人回答了太多次记不清了。

关于php - 如何使用/web 以外的 web 根目录部署 yii2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33261850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com