我的网址是这样的:
www.studyenglish / index.php的R =网站/教训&安培; ACT =读和ID = 1
我想改成:
www.studyenglish /站点/课/读
我已在url manager config / main.php中添加了此脚本
'urlManager'=>array(
....
'showScriptName'=>false,
....
),
并在.htaccess
中添加此脚本Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# 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
但它只能在这样的网址中使用:
www.studyenglish /的index.php?R =网站/课
是:
www.studyenglish /站点/课
那么,如何更改此网址
www.studyenglish / index.php的R =网站/教训&安培; ACT =读和ID = 1
是
www.studyenglish /站点/课/读
希望有人可以提供帮助。 谢谢......
答案 0 :(得分:1)
在 UrlManager 中有规则,您可以定义自己的规则。 您的UrlManager可能如下所示。
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array(
'gii' => 'gii/index',
'gii/<controller:\w+>/<action:[\w-]+>' => 'gii/<controller>/<action>',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'site/lesson/<act:\w+>/<id:\d+>' => 'site/lesson'
//
这将在 SiteController 中调用 actionLesson ,这应该会获得两个参数。
你的方法应该是这样的。
public function actionLesson($act,$id){
//
}
答案 1 :(得分:1)
将.htaccess更改为:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# 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?r=$1 [L]
并在网址管理器中添加适当的规则。
答案 2 :(得分:0)
将urlManager
更改为:
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName' => false,
'rules'=>array(),
),
和您的.htaccess
赞:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# 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 [L]