Urlmanager忽略index.php

时间:2016-11-10 12:39:32

标签: php yii yii2

我们的网站是http://test.dobrobut.com/
我需要将所有http://test.dobrobut.com/phpBB3/index.php?anything_here次请求重定向到404.

所以,这是问题所在。
Urlmanager开始在请求中的index.php之后为所有内容应用规则。
所以我可以提出像 http://test.dobrobut.com/dsfdsf/dsfdsf/dsfdsf/dsf/index.php
要么 http://test.dobrobut.com/index.php/index.php/index.php/index.php
它将导致网站/索引。

我们有:

'showScriptName' => false,
'enableStrictParsing' => true,
'enablePrettyUrl' => true,

那么如何将所有请求重定向到http://test.dobrobut.com/phpBB3/index.php到404?

1 个答案:

答案 0 :(得分:0)

您应该能够使用Yii's URL routing rules来完成此任务。在urlManager配置中指定以下内容:

'showScriptName' => false,
'enableStrictParsing' => true,
'enablePrettyUrl' => true,
'rules' => [
    'host' => 'http://test.dobrobut.com',
    'pattern' => 'phpBB3/index.php',
    'route' => 'site/lost',
],

以上配置将路由所有命中的请求:

test.dobrobut.com/phpBB3/index.php

到站点控制器的“丢失”操作。这意味着您必须按以下方式设置站点控制器:

use yii\web\HttpException;

class SiteController extends Controller
{
    // lot's of code and other actions here ..

    public function actionLost()
    {
        throw new HttpException(404, 'Sorry, the requested resource could not be found');
    }

}