我隐藏了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,则会重定向到登录页面。我做错了什么?
答案 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调试以跟踪重写规则。但这似乎比重写更安全规则问题