首先起作用的是配置文件的.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 函数式替换单页规则的;

最新文章

  1. CentOS 6.8_x64 Oracle 12C 安装
  2. Discuz中解决jquery 冲突的方法 绝对简单
  3. GDI+ 绘制经验
  4. 通过Navicat for MySQL远程连接的时候报错mysql 1130
  5. 如何查看 Linux是32位还是64位?
  6. [ 转] [Android]多式样ProgressBar
  7. 2016.04.28,英语,《Vocabulary Builder》Unit 20
  8. Java 期末复习提纲
  9. 基于visual Studio2013解决C语言竞赛题之1008整除数
  10. 分布式消息系统jafka快速起步(转)
  11. PHP面向对象(OOP)----分页类
  12. javascript重修之书(一):如何判断变量的数据类型
  13. swift UITextView内容距离边框边距设置
  14. java I/O---复制文本文件
  15. python计算机基础-Day1
  16. keyboard dialog 仿微博表情键盘输入框
  17. 使用readAsDataURL方法预览图片
  18. ByteBuffer详解
  19. python并发编程之多线程2------------死锁与递归锁,信号量等
  20. CSS兼容性详解

热门文章

  1. codevs 2216 线段树 两种更新方式的冲突
  2. C++ Primer : 第十一章 : 关联容器示例: 一个单词转换的map
  3. Ultra Pull To Refresh下拉刷新
  4. JavaWeb学习记录(十三)——商城购物之添加订单的数据库级联操作
  5. Apache运行模式
  6. HDU 2096 小明A+B --- 水题
  7. Android项目——传感器的使用
  8. max_input_vars 的影响
  9. 解决方法:loadrunner 场景下执行webservice脚本是---报错10492 Error: Exception was raised when calling per-process-init function in extens
  10. httplib