投稿 评论 顶部

伪静态以及应用(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?伪静态和真静态的选用建议

?