Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1621120
  • 博文数量: 1481
  • 博客积分: 26784
  • 博客等级: 上将
  • 技术积分: 17045
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-12 09:22
文章分类

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: IT业界

2011-07-15 10:32:27

                                    伪静态
----什么是伪静态
说白了伪静态就是地址中不带"?",也就是平常在网上看的的以.html展示的页面

----伪静态的由来
伪静态是相对真实静态来讲的.通常我们为了更好的缓解服务器压力,和增强搜索引擎的友好面.都将文章内容生成静态页面就是展示出来的是以.html一类的静态页面形式

----伪静态的利与弊
利:有利于被搜索引擎收录,可以防止注入,也可以防止盗链。相对于真静态而言,伪静态的应用对硬盘的损坏小。
弊:伪静态将占用一定量的CPU占有率,其原因就是伪静态应用了大量的正则表达式,举个例子,就是有一个页面为“lampPHP.php?id=2”经过伪静态处理可以转为“lampPHP_2.html”或者“lamp_2.html”这都是可以的,所以这需要耗掉一定的内存来将其区分开的。

----实现伪静态
Apache配置:

启用rewrite
#LoadModule rewrite_module modules/mod_rewrite.so
去除前面的 #
LoadModule rewrite_module modules/mod_rewrite.so

启用.htaccess
AllowOverride None 修改为: AllowOverride All

------例1:
#加载rewrite模块
RewriteEngine on #开启rewrite重写引擎
RewriteBase / #存放路径
RewriteRule ^lamp.*?[_]([0-9]+).html lampPHP.php\?id=$1


效果就是当访问"lampPHP_2.html"时,而服务器确是访问"lampPHP.php\?id=$1"这就是伪静态的效果,把动态的变为“静态”。
------例2:
下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是和70.40.213.183都跳转到主机前缀为 http://,避免相同内容的网页有多个指向的域名,如。

NameVirtualHost 70.40.213.183:80
ServerAdmin slj@kiya.cn
DocumentRoot “/web”
ServerName kiya.cn

RewriteEngine on #开启重写引擎
RewriteCond %{HTTP_HOST} !^ [NC] #mod_rewrite 规则修正符
RewriteCond %{HTTP_HOST} !^70.40.213.183 [NC]#mod_rewrite 规则修正符
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*) http:/// [L] #mod_rewrite 规则修正符
-------例3:
Rewrite 防盗链正则
不允许 这两个网站盗链 , 其它的网站都可以盗链的规则怎么写.

论坛中的答案是:
RewriteEngine On
RewriteCond %{HTTP_REFERER} chinaz.com [NC] #HTTP_REFERER:链接到当前页面的前一页面的 URL 地址
RewriteCond %{HTTP_REFERER} im286.com [NC]
RewriteRule.*\.(jpg|jpeg|gif|png|rar|zip|txt|ace|torrent|gz|swf)$ [R,NC,L]

解释: RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。

-------mod_rewrite 规则修正符
1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联

如果规则匹配则正常处理,以下修正符无效

8) T=MIME-type(force MIME type) 强制MIME类型
9) NS 只用于不是内部子请求10) NC 不区分大小写

11) QSA 追加请求字符串

原文地址:
12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1

阅读(449) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~