我想让
http://localhost/demo/index.php?r=greeting
通过
访问http://localhost/demo/greeting
在config / main.php中,我设置为
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName' => false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
我把以下内容放到.htaccess
Options +FollowSymLinks
IndexIgnore */*
<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>
我可以
http://localhost/demo/index.php/greeting
工作但不是
http://localhost/demo/greeting
是什么原因?
答案 0 :(得分:0)
这对我有用......
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
'showScriptName'=>false,
),
用于htaccess部分
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#otherwise forward to index.php
RewriteRule . index.php
看起来像你的,但你必须确保.htaccess文件在受保护的文件夹之外,因此在你的web目录的根文件夹中。
答案 1 :(得分:-1)
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'gii'=>'gii',
'gii/<controller:\w+>'=>'gii/<controller>',
'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<key:\w+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\w+>/<param:\w+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
试试这个。它的工作对我来说。这也包括gii网址的一部分。使用此功能,您还可以使用以下网址http://localhost/demo/gii
还有什么.htaccess你做了这个改变?