Yii url重写奇怪的行为(.htaccess + urlmanager)

时间:2014-05-21 16:12:57

标签: php .htaccess yii url-rewriting

我隐藏了index.php并使用以下代码使网址友好

的.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

在主配置中,

'urlManager'=>array(
               'urlFormat'=>'path',
                'showScriptName'=>false,
                'rules'=>array(

                ),
         ),

它按预期工作,但问题是它总是重定向到登录页面" site / login"当输入不存在的URL时。因此,如果网址错误/不存在而不是显示404,则会重定向到登录页面。我做错了什么?

2 个答案:

答案 0 :(得分:1)

使用路径 urlFormat时需要激活useStrictParsing以呈现错误网址的404页面,请像这样修改配置

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName' => false,
    'useStrictParsing'=>true,
    'rules'=>array(

    ),
),

有关详细信息,请参阅http://www.yiiframework.com/doc/api/1.1/CUrlManager#useStrictParsing-detail

答案 1 :(得分:1)

检查访客的访问权限错误的权限。您还可以在apache中打开LogLevel调试以跟踪重写规则。但这似乎比重写更安全规则问题