3

我搜索如何在 yii 中删除 index.php。它工作正常,但是
如何在 Yii 框架中删除 index.php

保护/配置/main.php

'urlManager'=>array(
        'urlFormat'=>'path',
        'showScriptName'=>false,
        'rules'=>array(
            'redirect/<redirectUrl>'=>'site/index',
            'login'=>'site/login',
            'privacy'=>'site/privacy',
            'password'=>'site/forgot',
            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),

我的 htaccess 文件

DirectoryIndex index.php
<IfModule mod_rewrite.c>
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
</IfModule>

当我检查以下网址时

yii.mywebapp.com/index.php?redirecturl= http://www.google.com

它正在工作,但我删除了 index.php

yii.mywebapp.com/?redirecturl= http://www.google.com

它也有效

但是当一些用户请求使用 yii.someurl.com/index.php?redirecturl=someurl 重定向 url 时我需要在 url 中隐藏 index.php

请帮忙

4

1 回答 1

4

将此规则放在您的行下方RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*?)index\.php([^\s]*) [NC]
RewriteRule ^ /%1%2 [R=301,L,NE]
于 2013-10-24T14:27:52.353 回答