mark88 2012-08-15 13:16:58 11631次浏览 2条回复 1 0 0

第一步:

在main.php配置文件的component域中添加urlManager模块,并加入urlrules.

$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',

);

第三步,当然是配置服务器的rewrite模块,使得入口为index.php

1)apache下,在网站根目录下建立.htaccess如下:

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如下:

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;
            }
}

这个照抄的,可是根本出不来。 环境是:LINUX+nginx

报错为:File not found.

  • 回复于 2012-08-15 16:50 举报

    貌似没这么麻烦吧,直接在main.php里吧urlmanage那一项注视的部分取消。

    'rules'=>array(
        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
        '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
        '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
    ),
    

    然后直接在rules里写你要的规则就好了~~

    1 条回复
    回复于 2017-06-04 20:44 回复

    看不懂这些规则- -

  • 回复于 2012-08-20 13:24 举报

    全都改过,可是不行,不知道为什么

您需要登录后才可以回复。登录 | 立即注册