在main.php配置文件的component域中添加urlManager模块,并加入urlrules.
重写方法1:
第一步:
$urls = include(dirname(__FILE__) . '/urlrules.php');
'urlManager'=>array(
'urlFormat' => 'path',
'showScriptName' => false,//隐藏index.php
'urlSuffix' => '.html',//后缀
'rules' => $urls,
),
第二步:在同级目录下写urlrules.php.如:
return array(
'/index.html' => 'site/index', //首页
'search' => 'search/index',
);
重写方法二:
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false, // 隐藏链接的index.php
'rules'=>array(
'content/<id:\d*>'=>'content/index',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'z_admin/<controller:\w+>/<action:\w+>/<id:\d+>'=>'z_admin/<controller>/<action>',
'z_admin/<controller:\w+>/<action:\w+>'=>'z_admin/<controller>/<action>',
),
),
第三步,当然是配置服务器的rewrite模块,使得入口为index.php
1)apache下,在网站根目录下建立.htaccess如下:
Options +FollowSymLinksIndexIgnore */*
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
注:
Apache启用URL重写模块
需要对apache/conf/httpd.conf文件做如下修改:
1、将# LoadModule rewrite_module modules/mod_rewrite.so前的#号去掉;
2、AllowOverride None改为AllowOverride All
修改完成后,重启Apache,即可在站点增加.htaccess文件即可。
另:
1、Windows下自由创建.htaccess文件的N种方法
2、.htaccess在线编辑器
2) nginx下在php配置模块和location模块添加rewrite如下:
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;
}
}
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;
}
}