Yii 2.0 - 拒绝" index.php"访问

时间:2014-12-05 04:11:30

标签: .htaccess yii2

我正在学习Yii 2.0 Framework。我像这样配置了urlManager:

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site',
            ],
        ],

SiteController只有一个动作 - actionIndex(默认值为1)。我想要的只是'mydomain.com'可以访问(所有其他请求导致404错误)。但是现在我可以用多种方式调用“站点/索引”动作:

  • mydomain.com
  • mydomain.com/site/index
  • mydomain.com/index.php
  • mydomain.com/index.php/site/index
  • mydomain.com/index.php?r=site/index

......等等。我的.htaccess文件是:

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if request dosn't start with web add it
RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule (.*) $1

# if file or directory dosn't exists go to /web/index.php 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

那么如何限制所有这些并使我的应用程序仅使用urlManager规则中直接指定的路径?


1 个答案:

答案 0 :(得分:0)

尝试将此添加到规则的顶部(右下方“RewriteEngine On”)

RewriteCond %{THE_REQUEST} index\.php
RewriteRule ^ / [L,R=404]