Yii中urlManager的配置

本文详细介绍了如何在PHP应用中配置URL管理模块并加入URL规则,同时指导如何在Apache和Nginx服务器上实现URL重写,以优化网站的URL结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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 +FollowSymLinks
IndexIgnore */*
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种方法

            http://www.zendstudio.net/archives/create-htaccess-file-in-windows/

      2、.htaccess在线编辑器

             http://www.htaccesseditor.com/sc.shtml

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;
            }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值