html网页纯静态:php
一、加载的时候不须要调用数据库,打开速度快,另外减小了服务端脚本的匹配时间。
二、减小了服务器对数据响应的负荷。
三、从安全角度讲,纯静态网页不易遭受黑客攻击。
四、从网站稳定性来说,即便网站代码或数据库出了问题,静态网站也不会受到影响。html
伪静态既url重写,就是截取传入的Web请求并自动将请求重定向到其余url的过程,其目的主要是经过重写URL的方法实现去掉动态网页的参数,从而更加有利于搜索引擎的收录。正则表达式
伪静态的优势有5点:
一、维护方便,网页天天都自动变化,不用维护或者说极大地减小了维护量。
二、能够方便的实现对搜索引擎的优化,易于被搜索引擎收录。
三、缩短了url的长度,隐藏文件实际路径提升了安全性,易于用户记忆和输入。
四、占空间比较小,不像纯静态那样多占用近过多的空间。
五、安全性能经过url地址隐藏或加密,让黑客没法找到真实的动态页面,同时动态文件不须要过高的权限,从而避免了木马的注入。数据库
伪静态最大的缺点就是会占用必定量的CPU使用率,增长服务器的响应时间。浏览器
综上所述,咱们该怎么选择呢?
一、既然真伪静态和伪静态对搜索引擎的效果同样,咱们就能够选择伪静态了,毕竟它的优势是纯静态不可取代的。
二、大量使用伪静态会照成CPU超负荷,因此咱们只要不大量使用就能够了,设计在线使用了相应的编译缓存技术,己经很好的优化并解决这个问题了。
三、静态只是针对搜索引擎的,不须要给用户使用,咱们有着很成熟的伪静态技术,没有必要去作真静态,给用户形成过多没必要要的麻烦。缓存
从以上的讨论得知伪静态的重要性,可是如何实现呢?具体实现方案以下:安全
个人测试目录是http://localhost/test/ 在该目录下新建.htacess文件服务器
在.htacess添加以下代码:性能
<IFMODULE mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^t_(.*)\.php$ test.php?id=$1 [L]
</IFMODULE>测试
我在个人测试目录下新建一个test.php,编辑以下内容:
<?php
echo $_GET['id'];
?>
而后在个人浏览器输入:http://localhost/test/t_3455.php
页面输出:3455
咱们来看看常见的 Discuz! 7.x 论坛程序的网址伪静态化 .htaccess 文件内容:
RewriteEngine On
RewriteBase /bbs
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
“RewriteEngine On”,开启 Rewrite 规则开关;
“RewriteBase”,指后文的 RewriteRule 重写规则生效的相对路径;
“RewriteRule”,定义一条重写规则。后面的字符串经过正则表达式进行匹配,匹配字符串以 ^ 开头并以 $ 结尾,替换字符串中 $1 指被第一次被匹配成功的字符串。
此处重写规则的功能:好比当访客访问 http://www.example.com/bbs/forum-21-3.html 时,网站内容将显示为 http://www.example.com/bbs/forumdisplay.php?fid=21&page=3 的内容(访问被重写网址时,网址不会被重定向/跳转)。
另外,若是在某条重写规则末尾添加 [R] 或 [R=301] 等时,访客访问被重写网址时,客户端将被执行重定向(跳转)到重写后的网址。