SEO工具箱:PHP自动生成PHPCMS伪静态规则.htaccess

这个做SEO的时候非常需要,以前从DEDECMS转战PHPCMS,最痛苦的就是设置伪静态,一直想设置 栏目名/文章ID.html 这样的规则,但是显然PHPCMS默认不提供,只提供最原始的 list-1-1.html ,show-1-1.html,这种URL对搜索引擎和用户都是不友好的(不符合百度搜索引擎指南中对URL友好的描述),哈哈,或者只是自己纠结。

如果非要以前非要这么设置的话,就得一条条手工加,没想到居然有一天自己也能破这个问题(其实只是个简单的读数据库的问题)。

第一步:PHPCMS后台设置规则(默认已经开启Apache伪静态)

第二部:生成.htaccess

把下面文件复制到文档,后缀改为PHP,放置在PHPCMS的根目录,运行http://admin.com/设置的文件.php,即可生成.htaccess文件

<?php
define(‘PHPCMS_PATH‘, dirname(__FILE__).DIRECTORY_SEPARATOR);
include PHPCMS_PATH.‘/phpcms/base.php‘;
//pc_base::creat_app();
$db_config = pc_base::load_config(‘database‘);    //读取配置文件
pc_base::load_sys_class(‘mysql‘, ‘‘, 0);
pc_base::load_sys_class(‘param‘, ‘‘, 0);
pc_base::load_model(‘content_model‘);
$db=new mysql();
$db->open($db_config[‘default‘]);
$pre = $db_config[‘default‘][‘tablepre‘];    //读取表前缀
$db->connect();
$catprefix = ‘list‘;
$catrule .= "<IfModule mod_rewrite.c>\n";
$catrule .= "RewriteEngine on\n";
$catdata = $db->select(‘catid,catdir,parentid‘,"{$pre}category","type=0");
foreach($catdata as $item){
    $catdir = $item[‘catdir‘];
    $catid = $item[‘catid‘];
    $parentid = $item[‘parentid‘] ? $item[‘parentid‘] : "";
    if(trim($parentid)){
        $parentdir = $db->select(‘catdir‘,"{$pre}category","catid={$parentid}")[0][‘catdir‘];
        $catrule .= "RewriteRule ^{$parentdir}/{$catdir}/([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid={$catid}&id=$2&page=$3\n";
    }
    $catrule .= "RewriteRule ^{$catdir}/([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid={$catid}&id=$2&page=$3\n";
}
$catrule .= "RewriteRule ^{$catprefix}/([0-9]+)_([0-9]+).html index.php?m=content&c=index&a=lists&catid=$1&page=$2\n";
$catrule .= "</IfModule>\n";
file_put_contents(PHPCMS_PATH.‘/.htaccess‘,$catrule);

/*RewriteEngine on
RewriteRule ^content-([0-9]+)-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3
RewriteRule ^show-([0-9]+)-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3
RewriteRule ^list-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=lists&catid=$1&page=$2*/
时间: 2024-10-09 20:45:42

SEO工具箱:PHP自动生成PHPCMS伪静态规则.htaccess的相关文章

ThinkPHP伪静态规则.htaccess与httpd.ini下隐藏index.php的解决方法

什么是伪静态?简单说就是将动态的url变成静态的url显示,就叫做伪静态.“伪”就是假的,不是真的静态url,是通过技术手段实现的.用户只要开通无忧php虚拟空间就支持url重写功能,无需其它任何设置,我们使用伪静态的好处,就是可以优化网络引擎,提高网站权重.将网站静态化处理,是网站seo优化非常重要的一个工作.Thinkphp也可以通过技术手段,实现伪静态处理. 满足thinkphp伪静态(url重写)条件: 1. 服务器开启url_rewrite功能,linux空间的php虚拟主机只需要开启

Nginx伪静态配置和常用Rewrite伪静态规则

伪静态是一种可以把文件后缀改成任何可能的一种方法,如果我想把php文件伪静态成html文件,这种相当简单的,下面来介绍nginx 伪静态配置方法有需要了解的朋友可参考. nginx里使用伪静态是直接在nginx.conf 中写规则的,并不需要像apache要开启写模块(mod_rewrite)才能进行伪静态. nginx只需要打开nginx.conf配置文件,在server里面写需要的规则即可. 代码如下: server { listen       80; server_name  haha.

7.nginx伪静态规则

网上收集的一些常用的,要用的时候就仿照一下,或直接拿来用. WordPress伪静态规则 location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filenam

前端的小玩意(9.4)——做一个仿360工具箱的web页面(自动生成所有图标,对图标添加响应逻辑)

前端的小玩意(9.1)--做一个仿360工具箱的web页面(Tab按钮切换) http://blog.csdn.net/qq20004604/article/details/52216203 前端的小玩意(9.2)--做一个仿360工具箱的web页面(全部工具里面的模板) http://blog.csdn.net/qq20004604/article/details/52226223 前端的小玩意(9.3)--做一个仿360工具箱的web页面(我的工具里的模板和样式) http://blog.c

按规则自动生成单据编号 以及并发问题

描述:每种单据新建时,自动生成它的单据编号. 规则如:固定码+日期+流水号 (ABC1603180001) 方法一:触发器 触发器的缺点是,执行了sql之后才看到编码. 测试:流水号不能超过最大数,否则后面的号码全是0 --有两张表,客户表和项目表,要求:新建项目时自动生成项目编号,每个不同的客户的项目的编号从1开始 --项目编号格式为PJ+"-"+"客户编号"+"-"+"日期"+"-"+"流水号

PHP版本的自动生成有规则的订单号(或编号)

<?php /** * PHP版本的自动生成有规则的订单号(或编号) * 生成的格式是: 20130103000001 前面几位为当前的日期,后面6位为系统自增长类型的编号 * 原理:  * 1.获取当前日期格式化值; * 2.读取文件,上次编号的值+1最为当前此次编号的值(记录以文件的形式存储) * (下月会接着这个编号) */ class FileEveryDaySerialNumber { private $filename; //文件名  private $separate; //系统分

织梦栏目在动态或者伪静态下仍然自动生成空的栏目文件夹

1.打开 /include/arc.listview.class.php 搜索 CreateDir(MfTypedir($this->Fields['typedir'])); 有3处地方都要改成 if($this->TypeLink->TypeInfos['isdefault']!=-1) { CreateDir(MfTypedir($this->Fields['typedir'])); } 2.打开 /dede/catalog_add.php 搜索 if($ispart != 2

dedecms织梦移动版伪静态 - 实现与PC电脑版静态地址url一致教程+伪静态规则

电脑版静态效果 移动版伪静态效果 以下教程所修改的文件(utf8/gbk)打包下载: 修改或者覆盖文件之前请备份以下4个文件\m\index.php\m\list.php\m\view.php\include\arc.listview.class.php 链接: https://pan.baidu.com/s/1i49ABe1 密码: 2wid 电脑版静态生成这里就不多说了,移动版伪静态操作教程如下: 1.移动版域名 m.123.com 解析并指向绑定目录到网站目录的m文件夹 2.后台-系统配置

Makefile 7——自动生成依赖关系 三颗星

后面会介绍gcc获得源文件依赖的方法,gcc这个功能就是为make而存在的.我们采用gcc的-MM选项结合sed命令.使用sed进行替换的目的是为了在目标名前加上"objs/"前缀.gcc的-E选项,预处理.在生成依赖关系时,其实并不需要gcc编译源文件,只要预处理就可以获得依赖关系了.通过-E选项,可以避免生成依赖关系时gcc发出警告,以及提高依赖关系的生成效率. 现在,已经找到自动生成依赖关系的方法了,那么如何将其整合到我们complicated项目的Makefile中呢?自动生成