【问题标题】:How to redirect my page如何重定向我的页面
【发布时间】:2015-04-28 16:05:18
【问题描述】:

我在免费的虚拟主机网站上上传了我的 yii2 模板高级项目...我的问题是我可以像这样在浏览器中打开我的网站

http://mysite.freehost.com/yiiproj/frontend/web/

如何删除该前端/网络?

所以当我要在浏览器中打开我的前端时,它就像这样

http://mysite.freehost.com/yiiproj/

提前谢谢你。

【问题讨论】:

  • 考虑this配置示例
  • 顺便说一下我放在yiiproj里面

标签: php .htaccess mod-rewrite url-rewriting yii2


【解决方案1】:

你可以在你的 Root/.htaccess 中试试这个

  RedirectMatch 301 ^/yiiproj/?$ http://mysite.freehost.com/yiiproj/frontend/web/

如果 RedirectMatch 没有帮助,请尝试以下操作。

 RewriteEngine on 
 RewriteRule ^yiiproj/?$ http://mysite.freehost.com/yiiproj/frontend/web/ [R=301,NC,L]

【讨论】:

    【解决方案2】:

    您需要将所有框架部分放在网络“可下载”文件夹之外。在任何免费主机上,您都可以在“public_html”或“www”文件夹中找到可下载的部分。

    基本应用

    1. 在 www 部分之外的根目录下,创建一个文件夹(例如,将其命名为 myyiiapp)并将所有应用程序文件放在那里。

    2. 将 /web 内容移动到 www/yiiproj 文件夹,这是可下载的目录。

    3. 更新 web/index.php(现在位于 www/yiiproj/index.php)文件以指向正确的 yii 应用程序的相对目录,你应该很高兴。对于基本应用,您需要将以下 3 行编辑为类似的内容。

      require(__DIR__ . '/../myyiiapp/vendor/autoload.php');
      require(__DIR__ . '/../myyiiapp/vendor/yiisoft/yii2/Yii.php');
      
      $config = require(__DIR__ . '/../myyiiapp/config/web.php');
      

    高级应用

    如果你使用的是 Yii 高级应用,前端和后端可以分开移动而不保留相关路径。

    1. 按照上述情况执行第 1 步。
    2. 将 /frontend/web 移动到文件夹 www/yiiproj 并将 /backend/web 移动到另一个文件夹 www/yiiadmin (etc)。
    3. 更新 web/index.php 文件以指向正确的相关路径。以下 8 行应在配置文件中相应更新

      require(__DIR__ . '/../../vendor/autoload.php');
      require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
      require(__DIR__ . '/../../common/config/bootstrap.php');
      require(__DIR__ . '/../config/bootstrap.php');
      
      $config = yii\helpers\ArrayHelper::merge(
          require(__DIR__ . '/../../common/config/main.php'),
          require(__DIR__ . '/../../common/config/main-local.php'),
          require(__DIR__ . '/../config/main.php'),
          require(__DIR__ . '/../config/main-local.php')
      );
      

    哲学

    这是 yii 应用程序的最佳/预期方法,因为它可以保护对源代码的任何类型的远程访问,并且所有公共内容都已经在 /web 部分中,可以安全下载。

    Yii2 是非常解耦的,您可以制作一个自定义应用程序,在可公开访问的区域中可能有 10 个 Web 目录。每个 web/index.php 文件指向相同的供应商目录(因为只需要一个 yii 安装),相同的配置文件(如果您只需要不同的 html)或个性化配置文件(如果应用程序具有相同的数据库但通常不同的控制器集)

    【讨论】:

    • 在哪里可以找到 3 行
    • 不是主索引文件,而是 web/index.php 文件。当您查看您的应用程序时,这是第一个被调用的文件,它使用相对路径加载框架。并且可以添加自己的htaccess,yii2默认没有
    • 我已经创建了一个名为 yiiproj 的目录,里面是 yii 框架
    • 我找不到这个 $config = require(DIR . '/../myyiiapp/config/web.php');
    • 编辑这两行后出现错误,最后一行我在 web/inde.xphp 中找不到它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多