【问题标题】:Yii2 Pretty Url don't work in Share Hosting (Basic Template)Yii2 Pretty Url 在共享主机中不起作用(基本模板)
【发布时间】:2017-09-24 14:57:41
【问题描述】:

我正在尝试在共享托管环境中部署一个使用 Yii2(基本模板)构建的小型项目。在本地一切正常。 主机服务器在根目录中如下所示:

/
---logs
---index.html

看完Yii2的doc。然后我删除文件 index.html 并将我的项目文件夹上传到根目录。它现在看起来像这样:

/
---logs
---assets
---commands
---config
---controllers
--- ...
---views
---web
--- ...

在尝试了该网站后,我得到了一个空白页面。然后我决定在主机服务器的根目录中创建一个 htaccess 文件来指向 web 文件夹,就像这里

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} !web/
RewriteRule (.*) /web/$1 [L]

在此之后我可以很好地获得索引页面

www.example.com

当我尝试访问时得到一个空白页面(例如,激活了 url prettyUrl)

www.example.com/articles/list 

但是当我停用 prettyUrl 时,它的工作原理就像例如

www.example.com/web/index.php?r=articles/list

web文件夹中的.htaccess是这样的:

Options +FollowSymLinks
IndexIgnore */*

RewriteEngine on

# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Otherwise forward it to index.php
RewriteRule . index.php

# Disable Directory Browsing
Options All -Indexes

url 规则设置在 web.php 文件中,如下所示:

 'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'showScriptName' => false,
        'enablePrettyUrl' => true,
        'baseUrl' => '/',
        'rules' => [                        
                ...
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',

                ],
    ],

【问题讨论】:

  • 我要做的第一件事是在.htaccess 文件中引入一些垃圾,以检查它是否被读取。如果是,则在访问任何页面时都会弹出错误 500
  • @gmc 我做到了,并且读取了 .htaccess 文件。

标签: .htaccess url-rewriting yii2


【解决方案1】:

大部分共享主机禁用了 htaccess 文件中的一些指令,以防止出现一些安全问题。如果在你的 htaccess 文件中发现了一个受限指令,你会得到一个 500 错误页面。

如果您删除 Options +FollowSymLinks 指令,很可能一切都会正常工作。

此外,您可以查看 apache 错误日志以获取更多信息。

【讨论】:

  • 你在 apache 错误日志中有一些错误吗? Ps.:尝试从配置中删除baseUrl。
猜你喜欢
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
  • 2011-05-16
相关资源
最近更新 更多