黄聪:wordpress伪静态的原理

首先起作用的是配置文件的.htaccess 中的

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

这两个的意思如果没找到对应的文件就访问 index.php对应的文件;举个例就是 http://hcsem.com/wp 如果没有wp这个文件夹就http://hcsem.com/index.php;然后通过内置的规则找到对应的动态地址;

内置规则;

WordPress博客wp-includes文件夹下的taxonomy.php;中的 create_initial_taxonomies()函数创建文章分类category伪静态的初始数据;

WordPress博客wp-includes文件夹下的rewrite.php 是整个伪静态的核心文件中的 rewrite_rules()是生成伪静态的总函数;他运行一次就是将所有伪静态规则生成后写入wp_options这个数据库中option_name是rewrite_rules;这个函数中一排$date_rewrite = $this->generate_rewrite_rules 是生成各链接的规则;

$this->rules = array_merge($robots_rewrite, $old_feed_files, $registration_pages, $root_rewrite, $comments_rewrite, $search_rewrite,  $author_rewrite, $date_rewrite,  $post_rewrite, $this->extra_rules,$page_rewrite,$this->extra_rules_top);

上面这个就是将每个的规则合并起来;我移动了红色的数组;就是规则的顺序从新排列了哈;让他能适合我的静态规则;这里打个比喻;伪静态的正册表达式就相当 于在池塘里面用渔网捕鱼;最前面的网要大;而且最后有一些特殊要求;有的只能捞红色的鱼;有的只能捞黄色的鲤鱼;记住;捞黄色鲤鱼的网一定要在捞黄色鱼网 的前面;不然黄色的鲤鱼就被捞走了 就会出现黄色鲤鱼捞不到;而有一种网是只要是鱼就能捞起来;所以这个一定要在最后面;去掉category的规则伪静态规则有个事"(.+?)/?$" ; 懂正则的都知道这个能匹配所有访问域名;所以我就改变了排列顺序;把这个规则移动到了最后面;而单页面的伪静态有个规则是(.?.+?)(/[0-9]+)?/?$它也能匹配所有的;所以我就把这个改编了哈;加了个.html 伪静态感觉更好;

link-template.php;是相当于根据内置的规则将网站中的链接的动态地址转换成静态地址;function _get_page_link 函数式替换单页规则的;

时间: 2024-11-16 07:59:42

黄聪:wordpress伪静态的原理的相关文章

黄聪:《跟黄聪学WordPress主题开发》

又一个作品完成!<跟黄聪学Wordpress主题开发>,国内最好的Wordpress主题模版开发视频教程!! 目录预览: WordPress官方源文件层式结构讲解 WordPress数据库表结构.字段详解 WordPress主题模版加载过程 WordPress主题模版开发:主题模版的安装及创建 WordPress主题模版开发:首页模版及调用options表数据 WordPress主题模版开发:如何循环输出文章列表 WordPress主题模版开发:文章元数据及多语言化 WordPress主题模版

黄聪:WordPress 多站点建站教程(六):使用WP_Query、switch_to_blog函数实现获取子站点分类中的文章

首先在你使用主题的funtions.php里面添加下代码: //根据时间显示最新的分类文章内容,每个站点显示一篇内容 //$blog_id 子站点ID //$catid 分类ID wp_reset_query(); switch_to_blog($blog_id); global $post;?> $my_query2 = new WP_Query('showposts=1&order=desc&orderby=date&cat='.$catid); while ($my_q

黄聪:如何删除wordpress登录之后wp_footer、wp_head自行加载的Open Sans字体、fonts.googleapis.com连接导致卡死的问题

有时候在浏览自己的WordPress网站时,发现网页长时间无响应, 卡在正在连接到fonts.googleapis.com ,如下图所示: 查看网页源码时,发现Head里面有如下一段代码: <link rel='stylesheet' id='open-sans-css' href='//fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=

黄聪:《跟黄聪学WordPress插件开发》

续<跟黄聪学WordPress主题开发>之后,又一个作品完成!<跟黄聪学Wordpress插件开发>,国内最好的Wordpress插件开发视频教程!! 目录预览: WordPress插件简介 WordPress插件的创建 认识钩子:动作(add_action与do_action) 认识钩子:带参数的动作 认识钩子:常用的动作实用案例 认识钩子:过滤器(add_filter与apply_filters) 认识钩子:带参数的过滤器 认识钩子:常用的过滤器实用案例 后台整合:创建菜单和子

黄聪:wordpress后台加载ajax.googleapis.com导致打开速度很慢的解决方案

打开wordpress后台,发现很卡,通过开发者工具看到是因为加载http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css这个元素导致的. <link rel='stylesheet' id='jquery-ui-smoothness-css' href='http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoot

黄聪:wordpress中remove_action、add_action、 do_action()的hook钩子都有哪些

原文地址:http://codex.wordpress.org/Plugin_API/Action_Reference muplugins_loaded After must-use plugins are loaded registered_taxonomy For category, post_tag, etc. registered_post_type For post, page, etc. plugins_loaded After active plugins and pluggabl

黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户、主题、插件、设置等功能

建立好了子站,我们需要有个地方配置所有子站的主题.插件等功能,我们可以在后台看到 我的站点--管理网络 如下图: 在 管理网络--仪表盘 里面,我们可以创新用户和站点,也提供了查询功能. 要注意的是:当你新上传的主题或者插件,都需要在管理网络那边的主题和插件里面将你上传的主题和插件开启.这样才可以在你的子站点中查看的到. 黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户.主题.插件.设置等功能

《黄聪:手机移动站SEO优化教程》4、如何实现手机移动网站和PC站点的自主适配

转载:http://blog.csdn.net/dog250/article/details/6896949 UDP协议疑难杂症全景解析 2011-10-22 19:26 2989人阅读 评论(4) 收藏 举报 tcp网络算法交通socket通讯 如今,但凡说精通网络的,第二个意思就是"精通TCP",事实上,很多自称精通TCP的家伙们只是精通socket接口而已,对TCP行为精通的并不多,笔者也不算精通,但绝对是中等以上水平.如果你真的精通TCP行为,那么本文不读也罢,直接发邮件给我,

黄聪:《网站高转换率法则》#2:你的网站是垃圾站吗?

原文链接:http://user.qzone.qq.com/281808710/blog/1411485614 我们接着之前的话题继续聊聊. 我们先来看看,你的网站是否存在下面几个问题: 1.我的网站每天都有不少流量,但是我不懂怎么留住这些流量. 2.我不懂怎么让这些流量成交. 3.我不懂怎么让这些流量帮助我带来新的流量. 那么,这些站长为什么会苦恼于这几个问题呢?我们来试着寻找一下答案. 1.关于网站的那些事儿 在我看来,绝大多数存在以上问题的网站,一般都是这样诞生的: 无论哪个行业,你只要通