首先隐藏index.php 已解决
然后pathinfo处理 已解决
再配置二级域名的重写 部分解决
‘http://v.XXX.com/<uid:\d+>’ => ‘theatre/index’, 这个二级域名配置生效了
但想把其他所有的controller用http://my.XXX.com/ 这个二级域名,咋处理??
nginx配置
location / {
rewrite ^/(.*)$ /index.php/$1 break;
fastcgi_pass 127.0.0.1:9010;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi.conf;
index index.php;
}
如果隐藏index.php+pathinfo,静态资源url会被重写加上index.php
location ~* ^.+\.(js|ico|gif|jpg|jpeg|pdf|png|css|swf|xml)$ {
access_log off;
expires 0d;
}
config 配置
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName'=>false,
'rules' => array(
'http://my.XXX.com/' =>'<controller>/<action>',
'http://v.XXX.com/<uid:\d+>' => 'theatre/index',
// '<controller:\w+>/<id:\d+>' => '<controller>/view',
// '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
// '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
),
另外cookbook里的
location /yiiGuestbook {
if (!-e $request_filename){
rewrite (.*) /yiiGuestbook/index.php/$1;
}
}
这个在.8系列里面会给所有的url都+上index.php ,!-e $request_filename无法过滤文件和目录,为什么?