重塑工作

http://www.v2ex.com/rework/index.html

引言 INTRODUCTION

我们有一些关于如何开创和经营一项事业,以及其怎样成长(或者停滞)的新理念。

这本书不是基于学术理论,而是基于我们的实践。我们已经积累 10 年以上的经验。在这一过程中,我们见证了两次经济衰退、 一次泡沫经济的溃灭、商业模式的转换、还时不时传出的黯淡前景的预言, 而在这过程中,我们仍然一直赚钱。

我们特意保持较小的公司规模,专门针对小企业和组织,帮助他们用简单方法解决事情。全球有超过 300 万人用我们的产品。

我们由三个人于 1999 年组成一家网站设计公司。2004 年,由于对业界普遍采用的项目管理软件并不满意, 所以我们创造了自己的:Basecamp。 当我们把这款在线工具展现给客户和和同事们时,他们都一致地说:“ 我们就需要这样的工具。” 5 年以后,Basecamp 一年就能产生数百万的利润。

 

值得去细细阅读!

DIY自己的笔记本内部水冷散热

第一步,购买器材

 KOSOO 优质环保 UL125℃ 5MM热缩管 红色 1.2元/米     * 4
AKUATEK水冷系统CPU专用微型水泵 12v无刷电机驱动 静音耐用   * 1
方便好用 天目705硅胶 硅橡胶 (透明色)                      * 3
45度常开 KSD9700 金属壳温控开关 热保护器 感温片 45度开启风扇  * 1
HP服务器拆机AVC 12V 1.14A 4CM双转子散热风扇 DB04048B12U     * 1

总共消耗 58.5人民币

第二步, 收集三个易拉罐瓶子. 两个做内部水盒, 一个做外部水塔.

2011年7月23日17:42:21            end

2011-08-17 又购入3米 软管水管  12元

详细成果

DIY笔记本内部水冷散热系统

转自: http://benyouhui.it168.com/thread-1622000-1-1.html

在这里首先感谢各位本友的支持。

其次感谢,天池水冷指导,及配件支持。自己淘宝去吧哈~论坛规矩不破


敬告:本贴涉及所有DIY手工活,如果对自己手工活没有信心,在没有专业人员知道的情况下,请勿对笔记本改造。所造成后果,本人一概不负责哦~


注意:改造水冷散热,会对笔记本一部分元器件造成永久性伤害,各位考虑改造的,先想明白哦~

正文开始:

首先~本人无耻的想求全论坛置顶,首页置顶,嘿嘿。顺便来个精华,要求不过分吧?哈哈


炎炎夏日,笔记本散热是每个本友的心病之一。市面上有不同的散热解决方法,归根到底,就是2种:主动散热和被动散热

我们经常会看到的就是散热垫,这个散热垫,纯属治标不治本的方法。

然后就是更换硅脂,这个原来就是更换导热率更高的硅脂,迅速的带走热量,碍于风扇,性能有限。

目前终极散热就是水冷或者液氮冷却!考虑到成本,及操作性等问题,果断考虑水冷散热制作方案。

现在开始理论验证:

水冷,顾名思义,在笔记本内部利用水循环带走内部热量来冷却。

进一步了解得知,水循环利用的水泵分为:压水泵和抽水泵。


抽水泵,就是利用水路,抽水,对内部密闭性要求一般。

压水泵,就是利用水路,压水,对内部密闭性要求极高。


其实压水泵和抽水泵,反过来用变为抽水泵和压水泵了。

考虑到密闭性等问题,我就利用抽水泵。

抽水泵在工作的时候,是通过水路,通过笔记本内部循环抽水。有漏洞的话,只会是抽气,不会漏气,这样的话,水管内部就能看到空气泡,水泵声音也会明显变化。这样就不会轻易漏水,对笔记本元器件也相对毕竟安全。漏气的时候,也可及时发现状况,处理起来也方便。

压水泵在工作的时候,是通过水冷,通过笔记本外内循环压水,对内部会造成极大的空气压,因为,我们不可能有配套的水冷头,只能自己DIY制作,所以说,长久以后,密闭性肯定是问题。而且一旦漏水,自己看不到,里面稀里哗啦就XXOO了~~然后就杯具了。。。


这样,我们的笔记本循环水路就出来的:

循环水管→抽水泵→水塔→循环水管→水冷头→循环水管

内部循环水路,我做了个示意图。大家看下:
IMG_0258.JPG

然后在测量具体数据,为制作水冷头准备:
IMG_0256.JPG
IMG_0257.JPG

接下来开始购买材料,开工喽~~~


水冷头制作原材料~~啦啦啦啦,就是我,铝板,没有铝板的,其实易拉罐瓶子也行。扔进锅里,沸水煮一煮,不变形就OK。

IMG_0265.JPG
IMG_0266.JPG
密闭性封口用的胶水,额。。。忘了拍照了。。你们自己搜吧。704胶水。

这类胶不但具有无毒、无腐蚀、无环境污染,耐高低温、耐老化、耐臭氧、耐紫外线、耐化学试剂、电绝缘性能好,使用寿命长等优良特性。耐温性在-50°至250°。


PU管,M4 2米,M6 2米。M4为4毫米直径,笔记本内部循环水管。M6为6毫米直径,笔记本外部循环水管。
IMG_0286.JPG
水塔,也就是水箱了
IMG_0287.JPG
快接头,4个。便携性,全靠这玩意。拆卸那叫个方便啊。
IMG_0289.JPG
抽水泵+适配器。
IMG_0290.JPG
报纸来个特写,05年电脑报,有历史吧,想当年,积攒了4年的电脑报,后来全干垫屁股的活了。。
IMG_0291.JPG
首先拆解笔记本。
脏死了,长久没清洗了。
IMG_0261.JPG
大卸八块。注意铜片的改动位置。这个得拆掉点,给管子留位置。
IMG_0262.JPG
风扇,上点润滑脂。
IMG_0263.JPG
来个笔记本内部一览,杯具的温控G92马甲GTX 260M+I7 720。
IMG_0264.JPG

手工活开动!来看我们的水冷头是怎么做成的。

准备切割,根据数据画规格。
IMG_0269.JPG
用704胶水,把M4 PU管粘上去。这个704胶水,凝固要半天到1天时间,所以耽误了一阵子,让各位本友久等了。
期间还有次测试漏水问题,又让我耽误了半天。
IMG_0270.JPG
做成的效果,纯手工水冷头~
IMG_0273.JPG
安装效果如图~
IMG_0275.JPG
装上风扇,用捆扎带,固定水管位置,因为水管冷热会有水蒸气在上面,所以尽量水管远离电路板,保持3毫米左右距离为好。
IMG_0282.JPG
CPU水冷循环管路架设,PU管子有点硬,不好弯,用捆扎带固定!
IMG_0283.JPG
GPU水冷循环管路架设。
IMG_0284.JPG
水管出口,此处破坏了出风道,我就塞了厚厚的卫生纸堵住那个位置,紧紧的就行。
IMG_0285.JPG
外部效果,伸出来分不清抽水进水,一定要注明了,其实用不同颜色的标签纸贴上就行~
IMG_0293.JPG
打开闪光灯,再看看~
IMG_0294.JPG

上效果图吧,哈哈,大家不要惊喜哦~那个散热,杠杠的!!

看看瞬间效果。哈哈,瞬间30°不是问题呐~
1234.jpg
稳定运行一段时间,不错吧?那个水塔里面的水滴声挺好玩的,有一种小溪从身边流过的感觉,哈哈。那个水泵声音是有小点,不伤大雅,我准备用海绵层层包裹。。。降低噪音
12345.jpg

最后有人问到哪个便携性的问题,因为我用到了快接头这个接口工具,从笔记本风扇口,伸出来30厘米,我就接了个那个快接头,拆卸是非常非常方便的。便携?笔记本不存在问题,就是得额外背一个水塔和水泵了~

背过ASUS那个绿包包的都知道,那个前面口袋装不满,所以~总体来说,便携不是问题!

来张整体效果!
20110504368.jpg 20110504370.jpg
再次感谢各位本友的支持啊。大家那么多人评分,小生甚是欣慰呐~在这里我回答几个大家关心的问题。


问:便携性怎么样?

答:首先我要说明,毕竟是配件了,所以得有包包装,一般那种单 肩包包肯定没地方装。我自己是双肩包,空间很大,所以完全能装得下。拆卸的问题,正文提到,我用了快接头那个工具,大家看材料说明PU管那个图,在端口处 就是那个接头,两头一插就连住了,而且肯定不漏水嘛。这个快接头占到了成本的80/200。我懒得换算啦,嘿嘿。拆卸也就是不到1分钟的事情。况且,大家 看我这个电脑。。平时肯定不用移动。。。。也就放假回家才收拾。

问:漏水、密闭性问题怎么解决?

答:这个是大问题。最重要的问题。选择704胶水也是很正确的 选择。还有就是一定要对自己的手工活有信心,我这是在是没有机床啊,只能自己那尖嘴钳来弯。704胶水一定要多涂抹一些,这样能更好的密闭,大家看我水冷 头刚制作好的图片和安装的图片对比。那个就是之前我第一次做好的样子。呵呵,当然漏水啊。我是反复的利用压水和抽水来验证。达到万无一失我还不行。因为管 子可能会热胀冷缩。所以我在管子伸出来的地方也是严防死守。使劲涂。才有了安装效果图。




做水冷最最最大的好处不是散热。。。。。是防盗!对就是防盗。。。我们学校经常丢电脑啊,闹心啊。我这线路非常多,被我规整了一下。。。一般人,你想拆,不要把自己电死就行,哈哈~~~

HTML中Select标签js使用方法

写了这么久的js了,才发现在IE6下对select对象使用innerHTML插入option标签居然会失效.

悲剧了,问同事才知道要使用new option() 突然发现自己二了.

 

看网上搜集的使用方法:

var oSelect = $(“oSelect”);

oSelect.options.add(new option(“name”, “value”));     //添加

oSelect.options[oSelect.selectedindex] = null;            //删除选中项

oSelect.options.length = 0;                                                  //删除全部的

oSelect.selectedindex = 1;                                                    //设置选中项

IE6系统错误 -1072896658 解决办法

IE6居然很蛋疼的报系统错误,啥情况吖

跟进调试发现:

这句话居然也报错.~!  啥

继续围观:

操蛋的居然是这里:

敲代码一定要注意. 写Header一定要注意别手贱了.

PHP定时任务实现

有时候为了定时去调接口,需要程序自动运行。从网上搜到有两种方法可以实现
1、ignore_user_abort()
ignore_user_abort()函数搭配set_time_limit(0)和sleep($interval)即可实现程序自动运行更新。
例子:
//即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
ignore_user_abort();
// 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去
set_time_limit(0);
// 每隔5分钟运行
$interval=60*5;
do{
$url = “http://www.qdsang.com”;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
$result = curl_exec($ch);
curl_close($ch);
// 等待5分钟
sleep($interval);
}while(true);

只要运行上面的页面,然后关掉,程序就会一直运行下去。

2、crontab

Linux 下有种更简单的方法,就是crontab命令

crontab命令的功能是在一定的时间间隔调度一些命令的执行。

crontab 使用方法: crontab [ -e | -l | -r ] 文件名 -e:编辑任务 -l:显示任务信息 -r:删除定时执行任务信息

crontab的格式:

*  *   *  *  *  Command

分 时 日 月 星期 要运行的命令

crontab的例子:

*/5 * * * *  /usr/bin/curl “http://www.qdsang.com”
#每5分钟访问一次 www.qdsang.com

Zend studio 8.0.1 在线更新 / 离线更新 汉化语言包官方地址 注册码

Zend Studio 8.0.1 正式版官方下载地址(未包含IBM i edition下载)

zend studio 8 注册码(适用于7.0以上所有版本)
Username: zendstudio.net
Serial Number: 3727234F6095F72034F6095F

这里有在线更新 和 离线下载语言包http://www.eclipse.org/babel/downloads.php

这次终于换算 Zend studio 8.0.1了,之前的版本一直很不爽的一个问题就是不支持php内置函数高亮。

Zend Studio 8.0.1 在线下载安装Zend Studio 简体中文语言包

打开Zend Studio 8,找到菜单栏中的Help菜单,点击后选择install new software会弹出install窗口,然后点击Add按钮

在Name中你可以随便填一个名字,在Locations中需要输入Zend Studio 8.01 汉化包的在线更新源,地址为:

http://download.eclipse.org/technology/babel/update-site/R0.8.1/helios

最后点击ok。

之后在Name和Version中会出现Pending字样 ,根据网速的快慢,Pending字样会持续几分钟,需要耐心等待。。。

最后选择Chinese (Simplified)选项,即Zend Studio 8 中文简体汉化包,最后只要不停的点击Next按钮即可。

Web UI 设计(网页设计)命名规范

原载:彬Go——集前端开发/网页设计/网站可用性/用户体验于一体的趣味互联网生活
原链接:http://blog.bingo929.com/web-ui-design-name-convention.html

 

Web UI 设计命名规范
最近工作实在是繁忙,所以好久没有更新自己的博客了,实在是对不起各位读者。今天好不容易闲下来半天,所以和大家分享一下我之前总结的一套Web UI 设计命名规范,也就是网站用户界面设计(俗称网页设计)命名规范。

这套规范并非单纯的CSS、html或JavaScript命名规范,它涉及了很多使用PhotoShop这类设计工具进行网页设计过程中的命名规范。(好久没写文章了,有点罗嗦,吼吼~)。首先我是出于公司几位美工的设计效果图源文件没有对图层命名而开始考虑总结一套的,还有一个原因就是网上大多命名规范都是关于编码的,也就是那些css、html、js和一些服务器端语言的,至于设计方面的命名规范实在是很少。但是毕竟设计师也是技术团队的成员,而且前端开发工程师是要使用设计师的效果图源文件的,所以统一命名规范和设计规范对于团队的协作和工作效率肯定是有好处的。

这套WebUI设计命名规范总结自我的一些Web设计经验和国外设计师的命名方式推荐。

Web UI 设计命名规范

一.网站设计及基本框架结构:

网页设计-命名规范

1.    Container
“container“ 就是将页面中的所有元素包在一起的部分,这部分还可以命名为: “wrapper“, “wrap“, “page“.
2.    Header
“header” 是网站页面的头部区域,一般来讲,它包含网站的logo和一些其他元素。这部分还可以命名为:“page-header” (或 pageHeader).
3.    Navbar
“navbar“等同于横向的导航栏,是最典型的网页元素。这部分还可以命名为:“nav”, “navigation”, “nav-wrapper”.
4.    Menu
“Menu”区域包含一般的链接和菜单,这部分还可以命名为: “subNav “, “links“,“sidebar-main”.
5.   Main
“Main”是网站的主要区域,如果是博客的话它将包含的日志。这部分还可以命名为: “content“, “main-content” (或“mainContent”)。
6.   Sidebar
“Sidebar” 部分可以包含网站的次要内容,比如最近更新内容列表、关于网站的介绍或广告元素等…这部分还可以命名为: “subNav “, “side-panel“, “secondary-content“.
7.    Footer
“Footer”包含网站的一些附加信息,这部分还可以命名为: “copyright“.

二.需要注意的几点:

1.尽量考虑为元素命名其本身的作用或”用意”,达到语义化。不要使用表面形式的命名.
如:red/left/big等。

2.组合命名规则:
[元素类型]-[元素作用/内容]
如:搜索按钮: btn-search
登录表单:form-login
新闻列表:list-news

3.涉及到交互行为的元素命名:
凡涉及交互行为的元素通常会有正常、悬停、点击和已浏览等不同样式,命名可参考以下规则:
鼠标悬停::hover   点击:click   已浏览:visited
如:搜索按钮: btn-search、btn-search-hover、btn-search-visited

三.Photoshop图层结构规范:

Photoshop图层命名遵循树形结构,凡某元素组成的图层大于3层,即可形成组,所有图层尽量避免使用默认命名(图层+编号)。

第一级图层结构如下图:

web-ui-设计-规范

第二级结构图例(医院网站):

网页设计-教程

第三级结构图例及效果图对比(医院新闻栏目):

网页设计-效果图
效果图

photoshop-网页设计-教程
图层命名结构

四.常用命名汇总:

页头:header
登录条:loginbar
标志:logo
侧栏:sidebar
广告条:banner
导航:nav
子导航:subNav
菜单:menu
子菜单:subMenu
下拉菜单:dropMenu
工具条: toolbar
表单:form
栏目:column
箭头:arrow
搜索:search
搜索按钮:btn-search
滚动条:scroll
内容:content
标签页:tab
文章列表:list
提示信息:msg
小技巧:tips
栏目标题:title
链接:links
页脚:footer
服务:service
热点:hot
新闻:news
下载:download
注册:regsiter
状态:status
按钮:btn
投票:vote
合作伙伴:partner
版权:copyright
网站地图: sitemap

以上命名规范仅供参考。如果大家对于Web UI设计规范有自己的见解,欢迎大家在此留言一同讨论,互相学习,共同进步:)

伪静态(url rewrite) apache配置开启.htaccess

开始建设自己站点的第一步.让url静态.留住每一个页面.

php 伪静态(url rewrite)apache配置
mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法!对初学者很有用的哦!
1.检测Apache是否支持mod_rewrite
通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。
如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。
如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。
2.让apache服务器支持.htaccess
如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让 APACHE支 持.htaccess了。打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),用文本编辑器打开后,查找
Options FollowSymLinks
AllowOverride None
改为
Options FollowSymLinks
AllowOverride All
就可以了。
3.建立.htaccess 文件
如果是在windows平台下,刚开始还真不知道怎么建立”.htaccess”文件,因为这个文件实际上没有文件名,仅仅只有扩展名,通过普通方式是无法建立这个文件的,别着急,马上告诉你三种方法:三种方法都是先建立一个htaccess.txt的文本文件(当然,这个文本文件的名字你可以随便取),然后有三种方式给这个文件重命名:
(1)用记事本 打开,点击文件–另存为,在文件名窗口输入”.htaccess”,注意是整个绿色部分,也就是包含英文引号,然后点击保存就行了。
(2)进入cmd命令 窗口,通过cd切换当刚建立htaccess.txt文件的文件夹,然后输入命令:rename htaccess.txt .htaccess ,然后点击键盘Enter键即可。
(3)通过ftp连接htaccess.txt所在文件夹,通过ftp软件重命名。
4.rewrite规则学习
我们新建一个.htaccess文件之后,就在里面写入以下内容:
RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭
RewriteRule ([0-9]{1,})$index.php?id=$1
我讲解一下RewriteRule:RewriteRule是重写规则,支持正则表达式的,上面的([0-9]{1,})是指由数字组成的,$是结束标志,说明是以数字结束!
好吧,现在我们可以实现伪静态页面了,写下一下的规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2
</IfModule>

([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个,如此类推!!
我们写一个处理的PHP脚本:
index.php
PHP代码<?phpecho ‘你的Action是:’ . $_GET[‘action’];echo ‘<br/>’;echo ‘你的ID是:’ . $_GET[‘id’];?>好了,我们现在在浏览器中输入:
localhost/view-12.html
输出的是:
你的Action是:view
你的ID是:12

 

以下指命令的作用域都是.htaccess

RewriteEngine On|Off

RewriteEngine 可用On 或者 Off 打开或关闭rewrite功能。
rewrite configurations 不会继承,所以你得给每个你想用 rewrite功能的virtual host加上这个指令。

RewriteBase URL-path

RewriteBase指令显式地设置了目录级重写的基准URL。在下文中,你可以看见RewriteRule可以用于目录级的配置文件中(.htaccess)并在局部范围内起作用,即规则实际处理的只是剥离了本地路径前缀的一部分。处理结束后,这个路径会被自动地附着回去。默认值是”RewriteBase physical-directory-path”。
在对一个新的URL进行替换时,此模块必须把这个URL重新注入到服务器处理中。为此,它必须知道其对应的URL前缀或者说URL基准。通常,此前缀就是对应的文件路径。但是,大多数网站URL不是直接对应于其物理文件路径的,因而一般不能做这样的假定! 所以在这种情况下,就必须用RewriteBase指令来指定正确的URL前缀。
如果你的网站服务器URL不是与物理文件路径直接对应的,而又需要使用RewriteBase指令,则必须在每个对应的.htaccess文件中指定RewriteRule 。

RewriteCond TestString CondPattern

RewriteCond指令定义了一个规则的条件,即在一个RewriteRule指令之前有一个或多个RewriteCond指令。条件之后的重写规则仅在当前URI与pattern匹配并且符合这些条件的时候才会起作用。
Notice:All of these tests can also be prefixed by an exclamation mark (‘!’) to negate their meaning. 在正则表达式中,如果取反的话要用^,在这里需要用!号取反

RewriteOptions Options

Sets some special options for the rewrite engine.
设定一些特殊的选项给rewrite.
The Option string can be currently only one:inherit
inherit
此值强制当前配置可以继承其父配置。 在虚拟主机级配置中,它意味着主服务器的映射表、条件和规则可以被继承。 在目录级配置中,它意味着其父目录的.htaccess中的条件和规则可以被继承。
MaxRedirects=number
为了避免目录级RewriteRule的无休止的内部重定向, 在此类重定向和500内部服务器错误次数达到一个最大值的时候, mod_rewrite会停止对此请求的处理。 如果你确实需要对每个请求允许大于10次的内部重定向,可以增大这个值。
This forces the current configuration to inherit the configuration of the parent.
强制当前的配置继承它parent的配置。
在per-virtual-server环境下,意味着maps, conditions , rules会被继承!
在per-directory 环境下 意味着它父目录的.htaccess配置中的conditions , rules 会被继承!

RewriteRule Pattern Substitution [flags]

 

Text:
  .           任何单字符
  [chars]     Character class: One  of chars
  [^chars]    Character class: None of chars
  text1|text2 两者选一个: text1 or text2

Quantifiers:量词
  ?           0 or 1 of the 前面的 text
  *           0 or N of the 前面的 text (N > 0)
  +           1 or N of the 前面的 text (N > 1)

Grouping:
  (text)      Grouping of text

可用$N来得到()中的内容:
 ( (a|b) | (c|d))
$1 $2      $3  

Anchors:
  ^           Start of line anchor
  $           End   of line anchor

Escaping:
  \char       escape that particular char
              (for instance to specify the chars ".[]()" etc.)

注意:没有并且&

 

=========================================================================================
flags

  1. ‘redirect|R [=code]’ (强制重定向 redirect)

    以http://thishost[:thisport]/(使新的URL成为一个URI) 为前缀的Substitution可以强制性执行一个外部重定向。 如果code没有指定,则产生一个HTTP响应代码302(临时性移动)。 如果需要使用在300-400范围内的其他响应代码,只需在此指定这个数值即可, 另外,还可以使用下列符号名称之一: temp (默认的), permanent, seeother. 用它可以把规范化的URL反馈给客户端,如, 重写“/~”为 “/u/”,或对/u/user加上斜杠,等等。 注意: 在使用这个标记时,必须确保该替换字段是一个有效的URL! 否则,它会指向一个无效的位置! 并且要记住,此标记本身只是对URL加上 http://thishost[:thisport]/的前缀,重写操作仍然会继续。 通常,你会希望停止重写操作而立即重定向,则还需要使用’L’标记.

  2. ‘forbidden|F’ (强制URL为被禁止的 forbidden)

    强制当前URL为被禁止的,即,立即反馈一个HTTP响应代码403(被禁止的)。 使用这个标记,可以链接若干RewriteConds以有条件地阻塞某些URL。

  3. ‘gone|G’ (强制URL为已废弃的 gone)

    强制当前URL为已废弃的,即,立即反馈一个HTTP响应代码410(已废弃的)。 使用这个标记,可以标明页面已经被废弃而不存在了.

  4. ‘proxy|P’ (强制为代理 proxy)

    此标记使替换成分被内部地强制为代理请求,并立即(即, 重写规则处理立即中断)把处理移交给代理模块。 你必须确保此替换串是一个有效的(比如常见的以 http://hostname开头的)能够为Apache代理模块所处理的URI。 使用这个标记,可以把某些远程成分映射到本地服务器名称空间, 从而增强了ProxyPass指令的功能。 注意: 要使用这个功能,代理模块必须编译在Apache服务器中。 如果你不能确定,可以检查“httpd -l”的输出中是否有mod_proxy.c。 如果有,则mod_rewrite可以使用这个功能; 如果没有,则必须启用mod_proxy并重新编译“httpd”程序。

  5. ‘last|L’ (最后一个规则 last)

    立即停止重写操作,并不再应用其他重写规则。 它对应于Perl中的last命令或C语言中的break命令。 这个标记可以阻止当前已被重写的URL为其后继的规则所重写。 举例,使用它可以重写根路径的URL(‘/’)为实际存在的URL, 比如, ‘/e/www/’.

  6. ‘next|N’ (重新执行 next round)

    重新执行重写操作(从第一个规则重新开始). 这时再次进行处理的URL已经不是原始的URL了,而是经最后一个重写规则处理的URL。 它对应于Perl中的next命令或C语言中的continue命令。 此标记可以重新开始重写操作,即, 立即回到循环的头部。 但是要小心,不要制造死循环!

  7. ‘chain|C’ (与下一个规则相链接 chained)

    此标记使当前规则与下一个(其本身又可以与其后继规则相链接的, 并可以如此反复的)规则相链接。 它产生这样一个效果: 如果一个规则被匹配,通常会继续处理其后继规则, 即,这个标记不起作用;如果规则不能被匹配, 则其后继的链接的规则会被忽略。比如,在执行一个外部重定向时, 对一个目录级规则集,你可能需要删除“.www” (此处不应该出现“.www”的)。

  8. ‘type|T=MIME-type’ (强制MIME类型 type)

    强制目标文件的MIME类型为MIME-type。 比如,它可以用于模拟mod_alias中的ScriptAlias指令, 以内部地强制被映射目录中的所有文件的MIME类型为“application/x-httpd-cgi”.

  9. ‘nosubreq|NS’ (仅用于不对内部子请求进行处理 no internal sub-request)

    在当前请求是一个内部子请求时,此标记强制重写引擎跳过该重写规则。 比如,在mod_include试图搜索可能的目录默认文件(index.xxx)时, Apache会内部地产生子请求。对子请求,它不一定有用的,而且如果整个规则集都起作用, 它甚至可能会引发错误。所以,可以用这个标记来排除某些规则。 根据你的需要遵循以下原则: 如果你使用了有CGI脚本的URL前缀,以强制它们由CGI脚本处理, 而对子请求处理的出错率(或者开销)很高,在这种情况下,可以使用这个标记。

  10. ‘nocase|NC’ (忽略大小写 no case)

    它使Pattern忽略大小写,即, 在Pattern与当前URL匹配时,’A-Z’ 和’a-z’没有区别。

  11. ‘qsappend|QSA’ (追加请求串 query string append)

    此标记强制重写引擎在已有的替换串中追加一个请求串,而不是简单的替换。 如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。

  12. ‘noescape|NE’ (在输出中不对URI作转义 no URI escaping)

    此标记阻止mod_rewrite对重写结果应用常规的URI转义规则。 一般情况下,特殊字符(如’%’, ‘$’, ‘;’等)会被转义为等值的十六进制编码。 此标记可以阻止这样的转义,以允许百分号等符号出现在输出中,如: RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
    可以使’/foo/zed’转向到一个安全的请求’/bar?arg=P1=zed’.

  13. ‘passthrough|PT’ (移交给下一个处理器 pass through)

    此标记强制重写引擎将内部结构request_rec中的uri字段设置为 filename字段的值,它只是一个小修改,使之能对来自其他URI到文件名翻译器的 Alias,ScriptAlias, Redirect 等指令的输出进行后续处理。举一个能说明其含义的例子: 如果要通过mod_rewrite的重写引擎重写/abc为/def, 然后通过mod_alias使/def转变为/ghi,可以这样: RewriteRule ^/abc(.*) /def$1 [PT]
    Alias /def /ghi
    如果省略了PT标记,虽然mod_rewrite运作正常, 即, 作为一个使用API的URI到文件名翻译器, 它可以重写uri=/abc/…为filename=/def/…, 但是,后续的mod_alias在试图作URI到文件名的翻译时,则会失效。
    注意: 如果需要混合使用不同的包含URI到文件名翻译器的模块时, 就必须使用这个标记。混合使用mod_alias和mod_rewrite就是个典型的例子。

    For Apache hackers
    如果当前Apache API除了URI到文件名hook之外,还有一个文件名到文件名的hook, 就不需要这个标记了! 但是,如果没有这样一个hook,则此标记是唯一的解决方案。 Apache Group讨论过这个问题,并在Apache 2.0 版本中会增加这样一个hook。
  14. ‘skip|S=num’ (跳过后继的规则 skip)

    此标记强制重写引擎跳过当前匹配规则后继的num个规则。 它可以实现一个伪if-then-else的构造: 最后一个规则是then从句,而被跳过的skip=N个规则是else从句. (它和’chain|C’标记是不同的!)

  15. ‘env|E=VAR:VAL’ (设置环境变量 environment variable)

    此标记使环境变量VAR的值为VAL, VAL可以包含可扩展的反向引用的正则表达式$N和%N。 此标记可以多次使用以设置多个变量。 这些变量可以在其后许多情况下被间接引用,但通常是在XSSI (via or CGI (如 $ENV{‘VAR’})中, 也可以在后继的RewriteCond指令的pattern中通过%{ENV:VAR}作引用。 使用它可以从URL中剥离并记住一些信息。

  16. ‘cookie|CO=NAME:VAL:domain[:lifetime[:path]]’ (设置cookie)

    它在客户端浏览器上设置一个cookie。 cookie的名称是NAME,其值是VAL。 domain字段是该cookie的域,比如’.apache.org’, 可选的lifetime是cookie生命期的分钟数, 可选的path是cookie的路径。

 

世界,你好!

欢迎使用 WordPress。这是系统自动生成的演示文章。编辑或者删除它,然后开始您的博客!