首页 > 建站教程 > CMS教程 > phpcms >  给PHPCMSv9增加智能URL重写功能正文

给PHPCMSv9增加智能URL重写功能

此插件功能是从Leaps框架中拿出出来整合到PC的!

打开 phpcms目录 找到base.php
我们在最下面添加一个方法。如下图:


代码如下
public static function load_router(){
    $router = self::load_sys_class('router');
    $config = self::load_config('urlrouter');//读取从写配置文件
    $router->init($config);
    return $router;
}
好了继续
打开 phpcms\libs\classes\param.class.php
找到
if(!get_magic_quotes_gpc()) {
    $_POST = new_addslashes($_POST);
    $_GET = new_addslashes($_GET);
    $_REQUEST = new_addslashes($_REQUEST);
    $_COOKIE = new_addslashes($_COOKIE);
}
在他下面添加3行
$route = pc_base::load_router()->parseRequest();
if($route){
    @list ( $_GET['m'], $_GET['c'], $_GET['a'] ) = explode ( '/', $route, 3 );
}
打完收工。
接着下载附件解压出来class放倒phpcms\libs\classes目录下
怎么使用,默认情况下
支持 /admin/index/login?usename=admin 或者 /admin/index/login.html?username=admin这种风格的解析
没考虑API入口,因为兼容原来的嘛!
想要自定义URL咋办,好跟我来
caches\configs 创建配置文件
urlrouter.php
内容如下
$rules = array (
    'index' => 'content/index/index',//首页
    'search' => 'search/index/index',//搜索
    'register' => 'member/index/register',//注册
    'login' => 'member/index/login',//登录
    //'<application:\w+>/<controller:\w+>/<action:\w+>' => '<application>/<controller>/<action>',
    //'<application:\w+>/<controller:\w+>' => '<application>/<controller>/index',
    //'<application:\w+>' => array('<application>/index/index','bbb'=>'ccc'),
);
return array (
    'enablePrettyUrl' => true,
    'rules' => $rules,
    'showScriptName' => false,
    'suffix' => '.html',
);
好了。
怎么创建这么NB的URL呢?
在来
还记得$route = pc_base::load_router()->parseRequest();这样代码不?
好 $url=pc_base::load_router()->createUrl('member/index/login',array('user'=>'aaa'));
自动生成 /login.html?user=aaa 咋样神器吧!
要带上域名咋整?
$url=pc_base::load_router()->createAbsoluteUrl('member/index/login');
自动生成 http://xxx.xxx.xxx/login.html咋样神器吧!

附件下载 router.class.php.zip

还忘记了一点要想隐藏index.php

那么根据自己的服务器对号入座吧web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="URL Rewrite 1" stopProcessing="true">
                <match url="^(.*)$" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{HTTP_HOST}" pattern="^(.*)$" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
nginx
server {
    listen ****;
    server_name domain.com;
    root document_root;
    index index.php index.html index.htm;
    if (!-e $request_filename) {
        rewrite ^/(.*) /index.php/$1 last;
    }
}
apache
<IfModule rewrite_module>
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
</IfModule>

# 以下是一些文件的缓存设置,可修改或去掉
<IfModule expires_module>
    ExpiresActive On
    ExpiresByType text/css "access plus 3 days"
    ExpiresByType image/png "access plus 14 days"
    ExpiresByType image/gif "access plus 14 days"
    ExpiresByType image/jpeg "access plus 14 days"
    ExpiresByType application/x-shockwave-flash "access plus 28 days"
</IfModule>
Lighttpd
$HTTP["host"] =~ "(www.)?domain.com$" {
url.rewrite = (
"^/(.+)/?$" => "/index.php/$1",
)
}
除此之外在模板中如何使用呢?

在global.func.php文件的最底下添加如下代码
function U($route,$parameter = array()){
    return pc_base::load_router()->createAbsoluteUrl($route,$parameter);
}
那么在模板中可以直接使用

如 {U('member/index/login',array('aa'=>'bb'))}
上一篇: phpcms
下一篇: phpcms网站迁移步骤,phpcms上传服务器
推荐教程/recommond
最新教程/new
相关教程/relation

深圳SEO优化公司泰州seo网站优化公司凉山百度网站优化价格临沂网站优化推广推荐云浮品牌网站设计报价柳州网站搜索优化东莞关键词按天计费龙岗百度网站优化哪家好泰安百度竞价价格延安关键词按天收费公司临沂网站推广系统公司辽源阿里店铺托管哪家好上饶网站搜索优化公司广安网络营销哪家好拉萨建站推荐舟山网站搭建哪家好甘孜seo优化价格宜春外贸网站设计公司怀化设计公司网站推荐横岗百度标王多少钱焦作企业网站改版多少钱鹰潭百度爱采购哪家好宜宾网站搜索优化推荐枣庄关键词排名包年推广推荐咸阳建设网站多少钱思茅关键词排名包年推广公司延安推广网站哪家好玉林企业网站改版推荐达州英文网站建设玉树关键词按天扣费哪家好玉溪网站搜索优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化