可以这样写: '<controller:(post|product|user)>/<id:\d+>-<page:\d+>' => '<controller>/list', '<controller:(post|product|user)>/<id:\d+>' => '<controller>/list' \d+ 匹配数字 \w+匹配字母
第一步:
在main.php配置文件的component域中添加urlManager模块,并加入urlrules. 1 2 3 4 5 6 7 8 9 10 11 | $urls = include (dirname( __FILE__ ) . '/urlrules.php' );
:
:
'urlManager' => array (
'urlFormat' => 'path' ,
'showScriptName' => false, //隐藏index.php
'urlSuffix' => '.html' , //后缀
'rules' => $urls ,
),
|
第二步:在同级目录下写urlrules.php.如: 1 2 3 4 5 | return array (
'/index.html' => 'site/index' , //首页
'search' => 'search/index' ,
);
|
第三步,当然是配置服务器的rewrite模块,使得入口为index.php 1)apache下,在网站根目录下建立.htaccess如下: 1 2 3 4 5 6 7 8 9 10 | Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
|
2) nginx下在php配置模块和location模块添加rewrite如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | location / {
root /home/george/workspace/EclipsePHP/webroot;
index index.html index.php index.htm;
#try_files $uri $uri / @rewrite;
if (!-f $request_filename ){
rewrite (.*) /index.php;
}
}
location ~ \.php$ {
root /home/george/workspace/EclipsePHP/webroot;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/george/workspace/EclipsePHP/webroot $fastcgi_script_name ;
include fastcgi_params;
if (!-f $request_filename ){
rewrite (.*) /index.php;
}
}
|
ok.
|