yii urlManager:如果隐藏index.php,请停止工作规则

时间:2015-04-17 16:24:00

标签: php yii

如果我在URL中隐藏(通过.htaccess或php代码重定向)index.php名称脚本,则规则将停止工作(404错误)。

这意味着http://site.ru/index.php/test在开始时工作,http://site.ru/test现在无法正常工作 我该怎么办?

'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName'=>false,
    'rules'=>array(
        'test'=>'site/index',
    ),

我添加了它:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

一切都很好但是现在我的404规则无效...

(ErrorDocument  404     /404.html)


应答
如果你不想要dinamic 404页面(默认在yii网站/错误),那么改变它:

RewriteRule . index.php


RewriteRule .* /404.html

1 个答案:

答案 0 :(得分:0)

您在main.php中创建的路由规则工作正常,但您没有告诉apache从.htaccess覆盖重定向规则。如果您使用的是Linux,则在/etc/apache2/sites-available/

下创建一个允许覆盖规则
<Directory "/baepath/to/application">
AllowOverride All
#...
</Directory>

或者更常见的是,您可以通过为项目创建新的目录规则来创建虚拟环境。