微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何使用/ web以外的Web根部署yii2

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

我不希望不必将webroot更改为/ public_html / web,对于将来的项目,它可能不是一个选项.那么,有没有办法将整个网站层次结构放在/ 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通常放在〜中的各种dotfiles和用户文档.我更愿意将所有与站点相关的目录放在一起(在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...)

解决方法:

这已被问过很多次,他们在Yii2文档中为它做了page.

我个人回答这个问题的次数太多了.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐