伪静态以及应用(rewrite)


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. 使用apacherewrite机制来实现伪静态

1.4 在程序中处理伪静态

看一个案例. 这个案例把很多内容融入了.

 

 

 

最后我们使用正则在程序中处理:


1.5 补充讲解正则高级-环视

参考 正则高级环视

 

1.6 使用apacherewrite机制来完成伪静态

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 伪静态和真静态的选用建议

 

猜你喜欢

转载自blog.csdn.net/why444216978/article/details/80468384