我搜索如何删除yii中的index.php。 它工作正常,但是 How to remove index.php in Yii Framework
保护/配置/ 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中的index.php
请帮助
答案 0 :(得分:4)
将此规则放在RewriteEngine On
行的下方:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*?)index\.php([^\s]*) [NC]
RewriteRule ^ /%1%2 [R=301,L,NE]