1.1 伪静态的基本概念
当我们的页面,不适合使用真静态时,但我们希望url 很简洁,利用seo,这时我们可以考虑使用伪静态, 他的特点是从形式看是一个静态地址,但是在服务器端,没有这个静态页,实际上还是由动态的php页面来处理你的请求. 举例
http://localhost/news.php?type=music&id=100 url 在实际开发中,我们希望是
http://localhost/news-music-id100.html
1.2 基本原理
图示意:
1.3 实现伪静态的方法
1. 直接在程序中使用正则技术来完成伪静态
2. 使用apache的rewrite机制来实现伪静态
1.4 在程序中处理伪静态
看一个案例. 这个案例把很多内容融入了.
最后我们使用正则在程序中处理:
1.5 补充讲解正则高级-环视
参考 正则高级环视
1.6 使用apache的rewrite机制来完成伪静态
1.1.1 快速入门案例
步骤 1. 创建一个news.php 文件.
步骤 2. 修改httpd.conf 文件,启用rewrite模块
#启用rewrite模块
LoadModule rewrite_module modules/mod_rewrite.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
步骤3. 配置一个虚拟主机,并规定重写规则, 习惯httpd-vhost.conf 文件
步骤4: 修改hosts文件
步骤5: 重启并测试, 通过. 最后我们的虚拟主机的配置如下:
1.7 关于Directory节点的细节讨论
如何在Directory节点上配置,重写规则,访问权限, 403 404 还有欢迎页面, 具体配置如下:(修改httpd-vhosts.conf)
如果,我们没有权限去修改httpd-vhosts.conf 文件,我们可以把重写规则,直接写在.htaccess文件, 然后把这个文件放入到网站的某个目录下, 我们把配置修改到.htaccess文件中,这样可以更加灵活的控制网站.
1.8 在.htaccess文件中配置我们的访问权限
在网站根目录 .htaccess 文件.
第 2 章
伪静态的应用
2.1 使用伪静态来控制文件夹图片的访问
我有两个目录public 和 private , public 下面的图片可以被访问, pirvate 目录图片,只有本网站可以访问.
分析思路: 如果我们可以判断Referer值是否包含为 www.hsp.com, 如果包含,说明是本网站的请求,就返回图片,如果不包含 www.hsp.com 则可以判断是盗链的,就拒绝返回图片.
解决方法: 修改 pirvate 文件夹下的 .htaccess 文件.
2.2 伪静态的应用2
最后我们在www.hsp.com 网站的根目录下的 .htaccess 文件中,我们这样配置
#RewriteRule ([a-zA-Z_0-9]+)/([a-zA-Z_]+) index.php?c=$1&a=$2
☞ 这里有一个细节问题
RewriteRule (.+) news.php?id=$1 [QSA,L]
QSA : 表示 他把接收的值,当做一个query string ,这样我们可以把整个匹配到的结果传递给牧歌页面. L 表示他是最后一个规则,匹配后,就不再继续匹配.
2.3 伪静态应用3
如何做到:在www.hsp.com 当abc.html 存在就直接访问 abc.html ,否则才去访问 index.php
如何配置: 在.htaccess中增加了配置
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule abc.html index.php
2.4 伪静态应用4
在很多框架中,对于框架单入口的,我们通常可以简化掉 index.php , 比如
步骤:
1. Conf/config.php 文件 将 URL_MODEL 设置为 2
2. 按步骤来配置重新规则
2.5 伪静态的特点总结
优点1. 利于seo 2. 占用空间小 3. 安全性相对高 4. 可以把一个动态的php,虚成多个静态页面.
缺点: 执行效率低,因为要查询数据库 。
2.6 伪静态和真静态的选用建议