博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wordpress伪静态的原理
阅读量:7039 次
发布时间:2019-06-28

本文共 1368 字,大约阅读时间需要 4 分钟。

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

本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/p/4770551.html,如需转载请自行联系原作者

你可能感兴趣的文章
mybatis 打印sql语句
查看>>
git项目时遇到的问题
查看>>
做一个好的程序猿
查看>>
Testlink安装使用
查看>>
Android系统性能调优工具介绍
查看>>
数值类型与字节数组之间的相互转换
查看>>
uWSGI + Django @ Ubuntu
查看>>
iOS微信分享功能简单实现
查看>>
传入参数方法,参数值变化
查看>>
Mongodb Sharding Cluster 三台
查看>>
C Primer Plus 第7章 C控制语句:分支和跳转 7.2 if语句中添加 else 关键字
查看>>
ORACLE下删除当前用户下所有对象
查看>>
获取宽度高度常用javascript代码总结
查看>>
远程无法复制文件解决办法
查看>>
Spring boot with Oracle
查看>>
运算符重载的另一个解决方案:类型转换
查看>>
Linux下排查JVM的CPU偏高问题
查看>>
Alamofire4.x开源代码分析(二)请求参数和编码
查看>>
Android设计模式系列(10)--SDK源码之原型模式
查看>>
Eclipse中开启java的assert选项
查看>>