网页栅格系统研究(4):技术实现

前三篇文章中,明确了栅格系统的设计细节和适用范围。这一篇将集中讨论960栅格系统的技术实现。

Blueprint的实现

Blueprint是一个完整的CSS框架,栅格系统是它的一部分功能。我们来看demo页面:

采用浮动来实现布局,简单明了

950两侧没有margin, 最后一列的class需要加上last

采用额外标签来清除浮动

960.gs的实现

谈到960栅格系统,不得不提960.gs. Nathan Smith在这篇文章中,详细阐述了他的想法和设计思路。这里有个demo页面,核心代码很简单:

以下为引用的内容:



 

上面就构建了三栏布局:

有意思的几点:

margin是均匀放在950两侧的

所有grid除了宽度不同,左右边距都一致margin: 0 10px;

代码简单清晰,起始和结束列不需要添加额外class

很明显,Blueprint和960.gs都是采用浮动来实现布局的,主容器需要添加额外标签来清除浮动(可以参考这里)。当然,这也不是什么大问题,请看这篇文章的总结,不添加额外标签也可以清除浮动。

YUI的实现

接着来看大名鼎鼎的YUI Grids CSS. YUI的CSS框架由三个文件组成:

以下为引用的内容:

reset.css - 样式重置

fonts.css - 版式字体控制

grids.css - 栅格系统

我们从demo开始:

注意,demo链接中的宽度是750的,但我们只要将

 

 

中的id改为doc2, 页面宽度就自动变为950宽了(YUI非常强大^o^)。来看下dom结构:

采用的也是浮动布局,简化后的CSS代码为:

以下为引用的内容:

YUI的特点是:

依旧是采用浮动布局,槽(Gutter)宽通过margin-left来控制(Blueprint采用右边距,960.gs采用均分,这三个框架对槽的处理实在有意思)

总宽度采用em, 这样可以用在弹性布局上

栏的布局用的是百分比,采用了流体布局

YUI的好处是能用来做自适应布局,在这前面两个框架里是没有的。但普通的定宽布局,YUI则显得有点麻烦,比如我们要实现四栏布局,dom得这样写:

先来两个两栏布局,再细分为四栏布局,清晰度上欠佳。

更多栅格实现

栅格化更多是一种布局思想,实现技术可以千差万别。比如今年冒出来的伪绝对定位,立刻就可以用来实现栅格系统。明城兄弟就尝试了一把。

肯定还有非常多的栅格化实现方案,这里就不一一挖掘了。

双飞翼栅格系统

挺奇怪这个名字?请先阅读这篇文章:渐进增强式布局探讨. 简单说,双飞翼布局是一种布局实现技术,可以利用它来实现一整套栅格系统。

先看test页面:Grids Layout Test.

具体技术细节在渐进增强式布局探讨一文中已经阐述,这里不再重复。有几点需要说明:

这套栅格系统并不能实现所有布局。这和YUI Grids类似,只能实现预定的一些布局。比如三栏布局,目前只加入了5 : 13 : 6, 5 : 12 : 7, 9 : 9 : 6, 8 : 8 : 8四种情况,这是从淘宝的现有页面中分析总结出来的。对于同一个站点来说,太多不同的三栏比例不是好事(淘宝目前都有点多,以后可能还会进一步统一)。因此如果采用这套栅格系统的话,需要先分析站点,定义出一套合适的比例。这里有个所有比例的自动生成工具:grids_css_generator.html.

关于命名:.grid-c2-s6表示两栏(c2: column 2)布局,sub栏的宽度是4列(s4: sub width is 4 * 40 -10). 而.grid-c2-s6f, 最后的f表示两栏布局的第二种情况,即sub和main互换。类似地,.grid-c3-s5e6d表示三栏布局,其中sub栏的宽度是5, extra栏的宽度是6, 最后的d表示是s5e6三栏布局中的第四种情况。

为了方便使用,将最常用的两栏布局.grid-c2-s5用.grid-c2直接表示。同样的,.grid-c3表示.grid-c3-s5e6. 这是淘宝的默认值,其他站点可以根据实际情况修改。

这套布局符合渐进增强式工作流程。细心的你可能已经发现,所有两栏布局和三栏布局,HTML中的DOM结构是完全一样的,只有最外层div的class不同。如果要交换左右栏,只要非常简单的修改下class就可以。

实际使用时,两栏布局和三栏布局已经够用。其实有了两栏,其它布局就都可以组合出来。这里有一个尝试性页面:grids_test4_v0.1.html. 组合布局看起来很强大,但实际使用时会把问题搞复杂,不推荐使用,干脆忘掉吧。

最后来看下两个测试页面:两栏布局grid-c2_test.html 和 三栏布局grid-c3_test.html.

目前除了发现在ie6下有个bug(超大图片等会撑乱布局,其实可以用overflow: hidden来解决,但考虑overflow的负面影响,最后还是由布局内部的模块来自主控制的好),尚未发现其他问题。

小结

栅格系统更多的是一种布局思想,在实际使用时,根据具体需求选用合适的技术来实现即可。需要注意的是,对于栅格的技术实现来说,太灵活未必是件好事,适度灵活最难得。怎么才能适度呢?这需要疯狂实践 + 不断的反思 + 持续的重构 + 悟…

栅格搭好了页面框架,接下来很重要的一件事情就是往里面添加内容模块。让内容模块规范化,让页面生成工业化,对大型站点来说,这是栅格系统最有商业价值的地方。下一篇也是本系列最后一篇将展示栅格系统中的模块化应用。

网页栅格系统研究(3):粒度问题

目前尚未严格遵守栅格系统,如果重构的话,宽度方向可以考虑采用下面的栅格布局(只考虑页面主体部分,忽略高度的比例):

(图1)

纷乱的高度世界

我们来看下图1左上角。左上角部分目前的宽度为256px, 重构的话可以将宽度缩小到230px以符合栅格(不可避免的要调整内容,比如人气宝贝中将只能放下3张图片)。来仔细看下高度方向:

(图2)

高度方向的布局是:90 : 117 : 100, 第一个间隔是8, 总高度为325. 很明显,高度方向没有任何栅格化的迹象。实际上,

即便是严格遵守栅格系统的Yahoo!首页,高度方向上也没有严格栅格化。

这究竟是为何?

一切皆有可能

我们缩小关注点:

(图3)

上图中,图像的大小是70 x 70, 刚好是24列960栅格系统两列的宽度。对于右边的文字,采取了如下样式:

font-size: 12px;

line-height: 150%; /* 12 x 150% = 18px */

中文字体是宋体,line-height的计算值是18px. 注意图3中文字部分可视区域的高度为65, 上下各有4px和1px的间隙。为什么会产生这么奇怪的间隙呢?我们来看下图:

(图4)

从上图中我们可以得知,12px的宋体中文字,实际高度只有11px.line-height减去11多出来的高度,则“均匀”分布在上下间隙中(如果多出来的高度为偶数,则上下均分;为奇数时,上面比下面多1px)。这样,对于70px的高度来说,要布局4行文字时,假设行高多出来的上半部分为x, 下半部分为y, 在最理想的情况下,应该满足以下公式:

11 * 4 + 4 * x + 3 * y = 70

x = y 或 x = y + 1

不难推出,x最理想的整数解为4. 从而line-height为 4 + 11 + 3 = 18. 因此:

对于24列960栅格系统来说,如果要在高度方向上实现栅格,font-size为12px时,line-height的最佳取值是18px(150%).

追求完美点话,还可以将文字部分margin-top: -1px, 使得65上下的间隙为3和2.

至此,我们可以初步判断:

高度方向上是有可能严格栅格化的。一切皆有可能!

然而,现实总那么残酷

(图5)

上图中的标题高度为22, 这在24列960栅格系统中是无法对齐的。而且总高度为100, 在24列960栅格系统中也不存在(110才可以)。或许高度方向上我们可以细化行宽为20, 但依旧没法解决上面两个问题(22是明显不能解决的,而对于100px的高度,也无法通过细化行宽来解决。可选高度永远是10的奇数倍,如果进一步细化, 小于10后,会变得非常繁琐,没什么实际应用价值)

宽度世界里会好些吗

(图6)

上面是Yahoo!首页上的两个小模块,我都不想去标注模块里面的布局宽度了(因为一点都不符合24列960栅格系统)。宽度世界里,和高度世界一样充满希望但现实却残酷无比。

银弹是不存在的

栅格系统是美好的。但如果我们一味地追求将所有设计都栅格化(必须承认我曾有这个幻想),则立刻会陷入地狱一般的黑暗中。这篇文章中的艰难尝试(我 分析了20多个小模块),让我突然醒悟到一个粒度问题:任何设计都有适用范围,超出最佳适用范围,强行使用只会带来无尽的烦恼。对于栅格系统(这里指所有 栅格系统,包括多种栅格系统混合使用的情景)来说,我觉得以下场景非常适合:

页面的总体宽度布局,比如两栏、三栏等布局

一些固定区块的尺寸,比如广告图片的尺寸

区块之间的间距,可以参考栅格系统的槽宽(Gutter)

一些可以栅格化的小区域,比如图3中的例子,暗合栅格往往能简化布局上的考虑

除了上面这些应用场景,强行使用栅格系统,往往会束手束脚,适得其反。这篇文章的目的,就是尝试用最啰嗦最费神貌似很科学实际很无聊的分析来指出栅 格系统应用时的粒度问题。在粒度问题上达成一致后,下一篇中我们将讨论栅格系统的技术实现,最后一篇则讨论栅格系统的压轴好戏:模块化开发。

网页栅格系统研究(1):960的秘密

研究网页栅格系统前,来看一组数据:

网站       首页页面宽度 px

Yahoo!     950

淘宝        950

MySpace     960

新浪        950

网易      960

Live Search   958

搜狐         950

优酷      960

AOL      960

上面列举的都是Alexa全球排名前100的站点,它们的首页宽度为950px/960px. 除了微软的Live Search, 这些站点有个共同特点:页面结构较复杂,都可以认为是门户型网站。

再来看看Google, YouTube, Facebook, Flickr!, eBay等知名站点,它们的首页宽度没什么固定规律,共同的特点是:功能专一,页面结构相对简单。

根据上面的简单分析可以认为:当搭建页面结构复杂的门户型网站时,开发工程师们不约而同地都选择将页面宽度定为950px/960px.

这是一件很有趣的事情,为什么要选择这个宽度呢?这个宽度值究竟有什么魔力?

神奇的960

设计师们对苹果情有独衷。在 1024 x 768 的分辨率下,打开Firefox:

自然状态下,Firefox窗体的大小约为 974 x 650. 减掉左右两边7px的边框,网页的实际大小为上图中的红色部分,高宽为 960 x 650.

有趣的960就这样出现了。是的,可以认为一切就这么简单。栅格系统最早出现在平面设计领域,设计师们爱用苹果,苹果下浏览器的默认宽度为960px, 于是960就这么“自然”地出现了。

数字背后的奥妙

上面的“自然”出现,细究自然是不让人信服的。苹果系统的设计者们在没有喝醉酒的情况下选择了960,而不是其它什么1000之类的整数,自然另有奥妙。

科学界有很多问题都可以归结到数学问题上,我们也从数学着手:

960可以分解为2的6次方乘以3和5, 这使得960可以分割成以下宽度的整数倍:

以下为引用的内容:

2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 32, 40,

48, 60, 64, 80, 96, 120, 160, 192, 240, 320, 480

共26种(26 = 7 * 2 * 2 - 2, 减去2是去掉1和960自身),我们标记为:

以下为引用的内容:

N(960) = N(2^6 * 3 * 5) = 26

根据上面的算法,可以得到:

以下为引用的内容:

N(360) = N(2^3 * 3^2 * 5) = 22

N(480) = N(2^5 * 3 * 5) = 22

N(720) = N(2^4 * 3^2 * 5) = 28

N(750) = N(2 * 3 * 5^3) = 14

N(800) = N(2^5 * 5^2) = 16

N(960) = N(2^6 * 3 * 5) = 26

N(1000) = N(2^3 * 5^3) = 14

N(1024) = N(2^10) = 9

N(1440) = N(2^6 * 3^2 * 5) = 34

N(1920) = N(2^7 * 3 * 5) = 30

根据直觉(严格证明也不难,不过还是留给数学系的学生去证明吧),我们得到一个有趣的结论:

要使得N(width)最大,width的取值有两个系列:

A系列: …, 320, 720, 1440, …

B系列: …, 480, 960, 1920, …

N越大,可组合的宽度值就越多。对栅格系统来说,这意味着越灵活!

目前绝大多数显示器都支持 1024 x 768 及其以上分辨率。为了有效的利用屏幕宽度同时保证栅格的灵活度,可以看出960是非常合适的。这样,在目前主流显示器下,960就成为网页栅格系统中的最佳宽度了。(也许不久的将来,将会流行1440)

细心的你也许会记得,本文开头列举的宽度值中,950也出现了好几次。950是怎么来的?和960是啥关系?这些疑问,请关注本系列的下一篇文章。

备注:本系列文章收集于网络,转载仅作学习使用。

asp 中文乱码问题解决方法

不管什么语言乱码问题都存在在asp中解决乱码方法有以下几种: 如果页面显示正常,而从数据中获取的数据为乱码
UTF-8编码的话:在ASP脚本顶部加入
代码如下:


< %@Language="vbscript" Codepage="65001"%> 

以及再在区域中加入
代码如下:


 

gb2312编码的话:在ASP脚本顶部加入
代码如下:


< %@Language="vbscript" Codepage="936"%> 

以及再在区域中加入


 

如果输出语句输出为乱码则需要加入这句:
代码如下:


response.charset="utf-8" 

asp获取当前年月日时分秒

asp获取当前年月日时分秒
因为在调整一个asp程序,里面有备份数据库功能,自动命名只取了当前年月日,会造成同一天备份的内容重复,所以添加了时分秒命名,以示区分。

下面是从网上收集整理的内容:
now() 获取当前日期和时间
date()获取当前年月日
time()获取当前时分秒
year(date)获取给定日期的年份
month(date)取得给定日期的月份
day(date)取得给定日期是几号
hour(time)取得给定时间是第几小时
minut(time)取得给定时间是第几分钟
second(time)取得给定时间是第几秒
weekday(date)取得给定日期是星期几,1表示星期日,2表示星期一...
formatdatetime(date,vbshortdate)转化为短日期格式.
formatdatetime(date,vblongdate)转化为长日期格式.
formatdatetime(time,vbshorttime)转化为短时间格式
formatdatetime(time,vblongtime)转化为长时间格式
datediff("var","var1","var2")计算两个日期或时间间隔
var表示时间和日期的代码,如下:
年 yyyy
月 m
日 d
时 h
分 n
秒 s
周 ww
var1第一个日期或时间
var2第二个日期或时间

获取当前年月日时分秒的例子:

< % =year((date()))&"-"&month((date()))&"-"&day(date())&"-"&hour((time()))&"-"&minute((time()))&"-"&second((time())) %>.mdb

中间是用"-"隔开,效果:
2014-2-11-16-15-55.mdb
以上内容仅作参考。

LoadModule php5_module 参数和 PHPIniDir参数导致apache不能启动的解决方法

目前开始学习PHP,在手工配置本地环境,遇到这一问题。

LoadModule php5_module 参数和 PHPIniDir参数导致apache不能启动,在网上查询了一下,找到一些方法,在这里作分享。

出错的是这两行(在apache的httpd.conf配置文件中)

LoadModule php5_module "C:/www/php54/php5apache2_2.dll"

PHPIniDir "C:/www/php54"

在重启apache时,不能正常启动,提示如下错误:

后经排查,是这一行加载错误:

LoadModule php5_module "C:/www/php54/php5apache2_2.dll"

注释掉后,又出现这一行加载错误:

PHPIniDir "C:/www/php54"

然后在网上查询,有很多解决方法,最后发现,

是php版本的问题。

在php下载页面(http://windows.php.net/download/)的左侧,有这么一些提示:

我该选择哪个版本?

 

IIS

如果您使用的是PHP与IIS,你应该使用非线程安全(NTS)版本的PHP。

阿帕奇

请使用Apache的编译所提供的Apache休息室他们还提供VC11编译的Apache的x86和x64我们用自己的二进制文件来构建Apache的SAPI模块相比。

如果您使用的是PHP与Apache 1或Apache2的从apache.org(不推荐),你需要使用PHP的较旧的版本VC6与传统的Visual Studio 6编译器编译的。千万不要使用VC9 + PHP的版本与apache.org二进制文件。

VC9和VC11

更近的PHP版本是建立与VC9或VC11(分别为Visual Studio 2008和2012编译器),并包括改善性能和稳定性。

该VC9建立需要你有VISUAL C + +可再发行的Visual Studio 2008 SP1 的x86x64的安装。

该VC11建立需要具有的Visual C + +可再发行的Visual Studio 2012中 的x86或x64安装。

 

因为之前未能了解过php环境搭建,所以对这些不太了解,在仔细查看后,是因为PHP与Apache不匹配导致的,

然后重新下载,

再调试,就不会出现这种错误了。

在这里要感谢(http://zhidao.baidu.com/question/479628491.html)的回答者,给了我解决问题的思路,

同时也感谢http://hi.baidu.com/wangpeng007/item/a592a1a41f1e81db5af19177

以及http://zhidao.baidu.com/question/142835729.html

如果我使用的方法不能解决问题,大家可以尝试上面的网址中的方法。

 

 

语音辅助程序Voiceover使用教程及开启和关闭方法

Voiceover怎么关闭

使用 VoiceOver 的体验不同于你所用过的任何屏幕阅读器。传统的屏幕阅读器只能描述屏幕上单个的元素,很难告诉你各个元素的位置,或描述连贯性的对象。这种上下文信息非常重要,但往往被其他屏幕阅读器过滤。例如:传统屏幕阅读器用来呈现应用程序和网页的"离屏"模式有意去除了上下文信息,对网页的描述仅仅是一个项目列表或菜单。然而 iPhone 4S、iPhone 4 和 iPhone 3GS 中的 VoiceOver 将带给你全新的体验。

下面介绍一下如何打开 VoiceOver 以及关闭 VoiceOver。

Voiceover怎么关闭
现象:iphone 4s 等因为配置带不动,打开Voiceover会造成卡机或无法正常使用手机的现象,所以建议关闭即可。下面介绍一下Voiceover的使用方法,你也不会关闭了。

第一步、如何打开VoiceOver

首先找到 iPhone 上的“设置”图标,点击打开,如下图所示

Voiceover怎么关闭

找到“通用”,点击打开,如下图所示

Voiceover怎么关闭

用手指向上滑动,找到“辅助功能”,点击打开,如下图所示

Voiceover怎么关闭

然后,点击“VoiceOver”进入,如下图所示

Voiceover怎么关闭

接下来,将“VoiceOver”右边的开关,滑动打开,显示为蓝色,如下图所示

Voiceover怎么关闭
 打开以后,触摸屏幕任意地方,就会听到 Voicevoer 的语音朗读了,并且当有通知的时候,也会被朗读出来。

第二步、如何关闭VoiceOver

首先说明一下 VoiceOver 手指操作的方法:

第一,轻按一次来选择项目

第二,连按二次激活项目,如开关的打开或关闭

第三,用三个手指轻扫来滚动,比如在主屏上翻屏,在设置中可以上下滑动。

Voiceover怎么关闭
可能会出现这样的情况,当我打开了 VoiceOver 以后,却发现关闭不了。这里给大家详细说明一下具体的操作方法和细节。

 

比如,我现在打开手机上的“设置-通用”,我想要找到通用选项里的“辅助功能”,但是却发现不能滚动到下面的选项。

重点:VoiceOver 有一个触摸焦点,比如我现在的触摸焦点在“设置”按钮上,所以无论我用三个手指怎么上下滑动,屏幕都不会滚动,并且还会听到“咚咚”的声音,这表明我当前所指的地方不支持屏幕滚动。如下图所示

Voiceover怎么关闭

正确的操作方法是,轻按屏幕中间任意一个选项,就会看到被选中的项目有一个黑框,然后我们再用三个手指来滚动屏幕,如下图所示

Voiceover怎么关闭

用三个手指向上滑动,找到下面的“辅助功能”,轻按一次选中,再按二次进入辅助功能选项,如下图所示

Voiceover怎么关闭

然后,轻按一次来选中“VoiceOver”,再按二次进入开关切换选项,如下图所示

Voiceover怎么关闭

接下来,再轻按一次来选中“VoiceOver”,接着再按二次把 VoiceOver 关闭,如下图所示

Voiceover怎么关闭
Voiceover怎么关闭
最后,我们就成功地把 VoiceOver 关闭了。 

最后说明的是,在设置的时候,可能会无意操作,设置了开启Voiceover的快捷方式,例如连续三击主功能键。会造成关闭后,又被打开的困扰,在此说明,希望能帮到一些朋友。

 

 

 

Apache 的 httpd.conf 详解

Apache 的 httpd.conf 详解

#
# Apache服务器主配置文件. 包括服务器指令的目录设置.
# 详见 <URL:http://www.apache.org/docs/>
#
# 请在理解用途的基础上阅读各指令。
#
# 再读取此文档后,服务器将继续搜索运行
# E:/Program Files/Apache Group/Apache/conf/srm.conf
# E:/Program Files/Apache Group/Apache/conf/access.conf
# 除非用ResourceConfig或AccessConfig覆盖这儿的标识
#
# 配置标识由三个基本部分组成:
# 1. 作为一个整体来控制Apache服务器进程的标识 (the 'global environment').
# 2. 用于定义主(默认)服务器参数的标识。
#     响应虚拟主机不能处理的请求。
#     同时也提供所有虚拟主机的设置值。
# 3. 虚拟主机的设置。在一个Apache服务器进程中配置不同的IP地址和主机名。
#
# 配置和日志文件名:指定服务器控制文件命名时,
# 以 "/" (或 "drive:/" for Win32)开始,服务器将使用这些绝对路径。
# 如果文件名不是以"/"开始的,预先考虑服务器根目录--
# 因此 "logs/foo.log",如果服务器根目录是"/usr/local/apache",
# 服务器将解释为 "/usr/local/apache/logs/foo.log".
#
# 注: 指定的文件名需要用"/"代替""。
# (例, "c:/apache" 代替 "c:apache").
# 如果省略了驱动器名,默认使用Apache.exe所在的驱动器盘符
# 建议指定盘符,以免混乱。
#

### 部分 1: 全局环境
#
# 本部分的表示将影响所有Apache的操作
# 例如,所能处理的并发请求数或配置文件地址
#

#
# ServerType 可取值 inetd 或 standalone. Inetd 只适用于Unix平台
#
ServerType standalone

#
# ServerRoot: 目录树的根结点。服务器配置、出错信息、日志文件都保存在根目录下。
#
# 不要再目录末尾加"/"
#
ServerRoot "C:/www/Apache"

#
# PidFile: 服务器用于记录启动时进程ID的文件。
#
PidFile logs/httpd.pid

#
# ScoreBoardFile: 用于保存内部服务器进程信息的文件。
# 并非必须。 但是如果指定了(此文件当运行Apache时生成)
# 那么必须确保没有两个Apache进程共享同一个scoreboard文件。
#
ScoreBoardFile logs/apache_runtime_status

#
# 在标准配置下,服务器将顺序读取 httpd.conf(此文件可通过命令行中-f参数指定),
# srm.conf 和 access.conf。
# 目前后两个文件是空的。为了简单起见,建议将所有的标识放在一个文件中。
# 以下两条注释的标识,是默认设置。
# 要让服务器忽略这些文件可以用 "/dev/null" (for Unix)
# 或"nul" (for Win32) 作为参数。
#
#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf

#
# Timeout: 接受和发送timeout的时间
#
Timeout 300

#
# KeepAlive: 是否允许保持连接(每个连接有多个请求)
# "Off" -无效
#
KeepAlive On

#
# MaxKeepAliveRequests: 每个连接的最大请求数。
# 设置为0表示无限制
# 建议设置较高的值,以获得最好的性能。
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: 同一连接同一客户端两个请求之间的等待时间。
#
KeepAliveTimeout 15

#
# 在Win32下,Apache每次产生一个子进程来处理请求。
# 如果这个进程死了,会自动产生另一个子进程。
# 所有的进入请求在子进程中多线程处理。
# 以下两个标识控制进程的运行
#

#
# MaxRequestsPerChild: 每个子进程死亡之前最大请求数
# 如果超过这个请求数,子程序会自动退出,避免延期使用导致内存溢出或其他问题。
# 大部分系统,并不需要此设置,
# 但是部分,象Solaris,确实值得注意。
# 对Win32, 可设置为0 (无限制)
# 除非有另外的考虑。
#
# 注: 此值不包括在每个连接初始化请求后,"keptalive"请求
#       例如, 如果一个子进程处理一个初始化请求和10个后续"keptalive"请求,
#       在这个限制下,只会记为一个请求。
#
MaxRequestsPerChild 0

#
# ThreadsPerChild: 服务器所允许的并发线程数。
# 此值的设置取决于服务器的响应能力(约多的请求在同一时间激活,则每个请求的处理时间越慢)
# 和服务器所允许消耗的系统资源。
#
ThreadsPerChild 50

#
# Listen: 允许将Apache绑顶到指定的IP地址和端口,作为默认值的辅助选项。
# 参见 <VirtualHost>
#
#Listen 3000
#Listen 12.34.56.78:80

Listen 80

#
# BindAddress: 通过此选项可支持虚拟主机。
# 此标识用于告诉服务器监听哪个IP地址。
# 包括:"*", IP地址, 或域名.
# 参见 <VirtualHost> 和 Listen directives.
#
BindAddress 166.111.178.144

#
# Apache模块编译成标准的Windows结构。
#
# 以下模块绑定到标准的Apache二进制windows分布。
# 要修改标准操作,取消以下行的注释并且修改指定模块列表。
#
# 警告:这是高级选项。可能导致服务器崩溃。
# 没有专家的指导,不要轻易修改。
#
#ClearModuleList
#AddModule mod_so.c mod_mime.c mod_access.c mod_auth.c mod_negotiation.c
#AddModule mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_userdir.c
#AddModule mod_alias.c mod_env.c mod_log_config.c mod_asis.c mod_imap.c
#AddModule mod_actions.c mod_setenvif.c mod_isapi.c

#
# 动态共享对象(Dynamic Shared Object,DSO)
#
# 要使用基于DSO的功能模块,需要替换此处相应的
# `LoadModule' 行。这样在使用之前这些包含的标识都将生效。
# 有关DSO及至的详细资料请看Apache1.3版中的README.DSOSO。
# 运行"apche -l"将列表显示Apache内奸的模块(类似标准的连接已经生效)
#
# 注:模块载入的顺序很重要。没有专家的建议,不要修改以下的顺序。
#
#LoadModule anon_auth_module modules/ApacheModuleAuthAnon.dll
#LoadModule dbm_auth_module modules/ApacheModuleAuthDBM.dll
#LoadModule digest_auth_module modules/ApacheModuleAuthDigest.dll
#LoadModule cern_meta_module modules/ApacheModuleCERNMeta.dll
#LoadModule digest_module modules/ApacheModuleDigest.dll
#LoadModule expires_module modules/ApacheModuleExpires.dll
#LoadModule headers_module modules/ApacheModuleHeaders.dll
#LoadModule proxy_module modules/ApacheModuleProxy.dll
#LoadModule rewrite_module modules/ApacheModuleRewrite.dll
#LoadModule speling_module modules/ApacheModuleSpeling.dll
#LoadModule info_module modules/ApacheModuleInfo.dll
#LoadModule status_module modules/ApacheModuleStatus.dll
#LoadModule usertrack_module modules/ApacheModuleUserTrack.dll

#
# ExtendedStatus 在服务器状态句柄被呼叫时控制是产生“完整”的状态信息(ExtendedStatus On)
# 还是仅返回基本信息(ExtendedStatus Off)
# 默认是:Off
#
#ExtendedStatus On

### 部分 2: 主服务器配置
#
# 此部分的标识用于主服务器所有的设置值,
# 响应任何<VirtualHost>定义不处理的请求
# 这些值同时给你稍后在此文件中定义的<VirtualHost>提供默认值。
#
# 所有的标识可能会在<VirtualHost>中出现。
# 对应的默认值会被虚拟主机重新定义覆盖。
#

#
# Port: Standalone服务器监听的端口。
# 在Apache能够监听指定端口前,需要在防火墙中进行设置。
# 其它运行httpd的服务器也可能影响此端口。 Disable
# 如果遇到问题,请关闭所有的防火墙、安全保护和其他的服务。
# Windos NT的"NETSTAT -a"指令会有助于问题的分析。
#
Port 80

#
# ServerAdmin: 你的地址。如果服务器有任何问题将发信到这个地址。
# 这个地址会在服务器产生的某些页面中出现,例如,错误报告。
#
ServerAdmin  admin@8119.org

#
# ServerName 允许设置主机名。如果与程序获得的不同,主机名将返回客户端。
# (例如,用"www"代替主机真实的名字)
#
# 注: 主机名不能随便指定。必须是你的机器有效的DNS名称。否则无法正常工作。
# 如果不能理解,倾向你的网络管理员询问。
# 如果你的主机没有注册DNS名,可在此输入IP地址。
# 此时必须用IP地址来访问。(如, http://123.45.67.89/)
# 这样扔可以完成重新定向的工作。
#
# 127.0.0.1 是TCP/IP的本地环路地址, 通常命名为localhost.
# 机器默认此地置为本身。 如果只是使用Apache来进行本地测试和开发,
# 可使用127.0.0.1 作为服务器名.
#
#ServerName new.host.name

ServerName www.8119.org

#
# DocumentRoot: 放置服务文档的目录。
# 默认状态下,所有的请求都以这个目录为基础。
# 但是直接符号连接和别名可用于指向其他位置。
#
DocumentRoot "C:/www/Apache2.2/htdocs"

#
# Apache访问的每个目录可设置相关的服务和特性是允许或(和)不允许。
# (同样影响其子目录)
#
# 首先,设置"default"地址只有最基本的权限。
#
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

#
# 注意从现在开始必须制定开启特殊的权限。
# 这样就不会产生意想不到的结果。
# 请仔细确认。
#

#
# 这个地址应与DocumentRoot保持一致
#
<Directory "C:/www/Apache2.2/htdocs">

#
# 此值可是: "None", "All", 或下列的组合: "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", 或 "MultiViews".
#
# 注意"MultiViews"必须明确指定--- "Options All"不包括此特性。
#
Options Indexes FollowSymLinks MultiViews

#
# 此项控制目录中哪些.htaccess文件可覆盖。
# 允许值: "All"或者以下项的组合:"Options", "FileInfo",
# "AuthConfig", "Limit"
#
AllowOverride None

#
# 控制哪些用户可从此服务器获得资料。
#
Order allow,deny
Allow from all
</Directory>

#
# UserDir: 当请求~user时,追加到用户主目录的路径地址。
#
# 在Win32下,并不要求指定为用户登陆的主目录。
# 因此可使用以下的格式。
# 详细参照文档UserDir
#
<IfModule mod_userdir.c>
UserDir "f:/homepages/"
</IfModule>

#
# 控制访问UserDir目录. The following is an example
# 以下是一个站点的例子,权限限制为只读。
#
#<Directory "E:/Program Files/Apache Group/Apache/users">
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS PROPFIND>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS PROPFIND>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>

#
# DirectoryIndex: 预设的HTML目录索引文件名。
# 用空格来分隔多个文件名。
#
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>

#
# AccessFileName: 每个目录中用于控制访问信息的文件名。
#
AccessFileName .htaccess

#
# 以下行防止客户端可访问 .htaccess 文件。
# 因为 .htaccess文件通常包含授权信息,
# 处于安全的考虑不允许访问。
# 如果想让访客看到.htaccess文件的内容,
# 可将这些行注释。
# 如果修改了上面的AccessFileName,
# 请在此进行相应的修改。
#
# 同时,一般会用类似.htpasswd的文件保存密码。
# 这些文件同样可以得到保护。
#
<Files ~ "^.ht">
Order allow,deny
Deny from all
</Files>

#
# CacheNegotiatedDocs: 默认下,Apache对每个文档发送"Pragma: no-cache"
# 这将要求代理服务器不缓存此文档。
# 取消下列行的可取消这个属性,这样代理服务器将缓存这些文档。
#
#CacheNegotiatedDocs

#
# UseCanonicalName: (1.3新增) 当此设置为on时,
# 无论何时Apache需要构建一个自引用的URL(指向响应来源服务器),
# 它将用ServerName和Port来构建一个规范的格式。
# 当此设置为off时,Apache将使用客户端提供的"主机名:端口"
# 这将同时影响CGI脚本中的SERVER_NAME和SERVER_PORT
#
UseCanonicalName On

#
# TypesConfig 记录媒体类型(mime.types)文件或类似的东东放置的位置
#
<IfModule mod_mime.c>
TypesConfig conf/mime.types
</IfModule>

#
# DefaultType 是服务器处理未确认类型的文件,如为止的扩展名,的默认类型。
# 如果你的服务器上主要包含的是文本或HTML文档,"text/plain"是较好的设置
# 如果服务器上主要包含二进制文件,如应用程序或图片,
# 最好设置成"application/octet-stream"防止浏览器将二进制文件以文本的方式显示。
#
DefaultType text/plain

#
# mod_mime_magic模块允许服务器使用文件自身的不同标识来确定文件类型。
# MIMEMagicFile指示模块文件标识的定义所在的位置。
# mod_mime_magic不是默认服务器的一部分。
# (必须自行用LoadModule来追加 [见'全局环境'部分的 DSO 章节],
# 或者在编译服务器时包含mod_mime_magic部分)
# 包含在 <IfModule> 中.
# 就是说,如果该模块是服务器的一部分,MIMEMagicFile标识将执行。
#
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>

#
# HostnameLookups: 注册客户端的机器名或IP地址。
# 例如: www.apache.org (on) 或 204.62.129.132 (off).
# 默认为off,因为对于网络来说,最好让人们有意识的设置为on,
# 因为开启此功能意味着每个客户请求将导致至少向name服务器发送一个lookup请求
#
HostnameLookups Off

#
# ErrorLog: 错误记录文件的地址
# 如果不在<VirtualHost>内指定ErrorLog
# 改虚拟主机的错误心细将记录到此处。
# 如果在<VirtualHost>中明确指定了错误记录文件,
# 则错误将记录在那儿而不是这儿。
#
ErrorLog logs/error.log

#
# LogLevel: 控制记录在error.log中信息的个数.
# 可能的值:debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

#
# 以下标识定义CustomLog标识使用的格式。(见下)
#
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

#
# 访问记录的位置和格式 (功用的记录文件格式).
# 如果不在<VirtualHost>中定义记录文件,
# 那些访问记录就将保存在这儿。 Contrariwise, if you *do*
# 反之,如果指定了记录文件,那么访问记录将记录在那儿而不是这个文件中。
#
CustomLog logs/access.log common

#
# 如果希望使用代理和参考的记录文件, 取消以下标识的注释符
#
#CustomLog logs/referer.log referer
#CustomLog logs/agent.log agent

#
# 如果想在一个文件中记录访问、代理、参考信息(复合的记录格式)
# 可使用以下标识
#
#CustomLog logs/access.log combined

#
# 在服务器产生的页面(如错误文档信息,FTP目录列表等等,不包括CGI产生的文档)中
# 增加一条服务器版本和虚拟主机名的信息。
# 设置为"EMail"将包含mailto: ServerAdmin的连接.
# 可选值: On | Off | EMail
#
ServerSignature On

#
# 默认下,Apache用工作行解析所有CGI脚本
# 此注释行(脚本的第一行)包括'#'和'!'后面跟着执行特殊脚本的程序路径,
# 对perl脚本来说是C:Program FilesPerl目录中的perl.exe。
# 工作行如下:

#!c:/program files/perl/perl

# 注意真实的工作行不能有缩进,必须是文件的第一行。
# 当然,CGI进程必须通过适当的scriptAlias或ExecCGI选项标识来启动。
#
# 然而,Windows下的Apache即允许以上的Unix方式,也可以通过注册表的形式。
# 用注册表执行文件的方法同在Windows资源管理器中双击运行的注册方法相同。
# 此脚本操作可在Windows资源管理器的“查看”菜单中设置。
# “文件夹选项”,然后查看“文件类型”。点击编辑按钮。
# 修改操作属性。Apache 1.3会尝试执行‘Open'操作,
# 如果失败则会尝试工作行
# 这个属性在Apache release 2.0中会有改变.
#
# 每个机制都有自身特定的安全弱点,这样可能导致别人运行你不希望调用的程序。
# 最佳的解决方案还在讨论中。
#
# 要是这个Windows的特殊属性生效 (同时会是Unix属性无效)
# 取消下列标识的注释符。
#
#scriptInterpreterSource registry
#
# 上面的标识可在<Directory>块或.htaccess文件中单独替换。
# 可选择'registry' (Windows behavior)或 'script'
# (Unix behavior) option, 将覆盖服务器的默认值。
#

#
# Aliases: 可无限制的追加别名。格式如下:
# Alias 假名 真名
#
<IfModule mod_alias.c>

#
# 注意如果假名中包含'/',服务器会在当前URL中发出请求。
# 因此"/icons"不能用于别名
# 必须用 "/icons/"..
#
Alias /icons/ "C:/Program Files/Apache Group/Apache/icons/"

<Directory "C:/Program Files/Apache Group/Apache/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

#
# scriptAlias: 控制哪个目录包含服务器脚本。
# scriptAlias本质行和Aliases一样。, except that
# 区别在于真名目录中的文档被看作是一个应用程序。
# 请求时由服务器运行而不是发往客户端。
# "/"符号的规则同
# Alias相同.
#
scriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"

#
# "C:/Program Files/Apache Group/Apache/cgi-bin" 可修改为任何放置CGI脚本的目录
#
<Directory "C:/Program Files/Apache Group/Apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

</IfModule>
# 别名结束

#php脚本说明

scriptAlias /php/ "d:/php/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml
Action application/x-httpd-php "/php/php.exe"

#php脚本说明结束

#
# Redirect 允许告诉客户端服务器上曾经有的文档,但是现在不存在了。
# 并且可以告诉客户端到哪儿去寻找。
# 格式: Redirect old-URL new-URL
#

#
# 控制服务器目录列表显示的标识
#
<IfModule mod_autoindex.c>

#
# FancyIndexing标识是使用特定的目录检索还是标准的(standard)
#
IndexOptions FancyIndexing

#
# AddIcon*表明不同文件或扩展名显示的图标。
# 这些图标只在特定检索状态下显示。
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

#
# DefaultIcon 用于为制定图标的文件所显示的图标。
#
DefaultIcon /icons/unknown.gif

#
# AddDescription在服务器生成的检索的某个文件后追加小段说明。
# 此项只在设置为FancyIndexed时有效
# 格式:AddDescription "描述" 文件名
#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz

#
# ReadmeName是服务器默认的README文件。
# 并且会追加到目录列表的最后。
#
# HeaderName 是目录中需要预先显示内容的文件名。
#
# 如果MultiViews在选项中,作为结果,服务器将先找name.html,
# 如果存在就包含它。如果name.html不存在,
# 服务器会继续寻找name.txt。如果存在就作为纯文本包含进来。
#
ReadmeName README
HeaderName HEADER

#
# IndexIgnore是一系列的文件名。目录索引将忽略这些文件并且不包含在列表中。
# 允许使用通配符。
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

</IfModule>
# indexing标识结束

#
# 文件类型
#
<IfModule mod_mime.c>

#
# AddEncoding 可用于特殊浏览器(Mosaic/X 2.1+)快速传输压缩信息。
# 注:并不是所有的服务器都支持。
# 除了名字相似,以下Add*标识对上面的FancyIndexing定制标识无影响。
#
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
# AddLanguage用于指定文档的语言。
# 可以使用content标签指定每个文件的语言。
#
# 注 1: 后缀不必与所用语言的关键字相同。
#   --- 波兰语(Polish,标准代码为pl)的文档可以用
# "AddLanguage pl .po" 来避免与perl脚本文件混淆。
#
# 注 2: 以下例子表明两个字母的语言缩写和两个字母的国家缩写并不一定相同。
# E.g. 'Danmark/dk' 对比 'Danish/da'.
#
# 注 3: 其中'ltz'使用了三个字符,与RFC的规定不同。
# 但是这个问题正在修订中,并且重新清理RFC1766
#
# 丹麦Danish (da) - 荷兰Dutch (nl) - 英国English (en) - 爱萨尼亚Estonian (ee)
# 法国French (fr) - 德国German (de) - 现代希腊文Greek-Modern (el)
# 意大利Italian (it) - 朝鲜Korean (kr) - 挪威Norwegian (no)
# 葡萄牙Portuguese (pt) - 卢森堡Luxembourgeois* (ltz)
# 西班牙Spanish (es) - 瑞典Swedish (sv) - 加泰罗尼亚Catalan (ca) - 捷克Czech(cz)
# 波兰Polish (pl) - 巴西Brazilian Portuguese (pt-br) - 日本Japanese (ja)
# 俄国Russian (ru)
#
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage he .he
AddCharset ISO-8859-8 .iso8859-8
AddLanguage it .it
AddLanguage ja .ja
AddCharset ISO-2022-JP .jis
AddLanguage kr .kr
AddCharset ISO-2022-KR .iso-kr
AddLanguage no .no
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddCharset Big5         .Big5    .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866        .cp866
AddCharset ISO-8859-5   .iso-ru
AddCharset KOI8-R       .koi8-r
AddCharset UCS-2        .ucs2
AddCharset UCS-4        .ucs4
AddCharset UTF-8        .utf8

# LanguagePriority 可设置语言的优先级。
#
# 优先级降序排列
# 在此处按照字母顺序,可自行修改
#
<IfModule mod_negotiation.c>
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
</IfModule>

#
# AddType 可临时改变mime.types或者指定特殊文件的格式。
#
# 例如:PHP 3.x 模块 (非Apache标准配件,参见http://www.php.net)可用下面格式定义:
#
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
#
# PHP 4.x, 使用:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

AddType application/x-tar .tgz

#
# AddHandler 可将特定文件扩展名映射到处理方法上。
# 与文件类型无关。此特性可内建到服务器中或者追加在操作指令中(见下)
#
# 如果希望用服务器端应用或scriptAliased外的CGI,取消以下行的注释符
#
# 用CGI脚本:
#
#AddHandler cgi-script .cgi

#
# 用服务器解析的HTML文档
#
#AddType text/html .shtml
#AddHandler server-parsed .shtml

#
# 取消以下注释符可激活Apache的send-asis HTTP file特性
#
#AddHandler send-as-is asis

#
# 如果使用服务器端解析的图像定位文件,使用以下标识:
#
#AddHandler imap-file map

#
# 要激活type maps使用:
#
#AddHandler type-map var

</IfModule>
# 文档类型说明结束

#
# Action 定义在文件匹配时执行相应的脚本。
# 可简化常用CGI文件的调用。
# 格式: Action media/type /cgi-script/location
# 格式: Action handler-name /cgi-script/location
#

#
# MetaDir: 指定保存meta信息文件的目录。
# 这些文件包含附加的HTTP头,在发送文档是一并发送。
#
#MetaDir .web

#
# MetaSuffix: 指定包含meta信息的文件的后缀。
#
#MetaSuffix .meta

#
# 可定制的错误响应(Apache类型)
# 共三种风格:
#
#    1) 纯文本
#ErrorDocument 500 "The server made a boo boo.
# 注: 第一个"号用于表示是文本,实际不输出
#
#    2) 本地重定向
#ErrorDocument 404 /missing.html
# to redirect to local URL /missing.html
#ErrorDocument 404 /cgi-bin/missing_handler.pl
# 注:可重定向到任何一个服务器端的脚本或文档
#
#    3) 外部重定向
#ErrorDocument 402 http://some.other_server.com/subscription_info.html
# 注: 大部分与初始请求关联的环境变量对这样的脚本无效。
#

#
# 基于浏览器的定制操作
#
<IfModule mod_setenvif.c>

#
# 以下标识修改普通的HTTP响应操作。
# 第一个标识针对Netscape2.x和其他无此功能的浏览器取消保持激活状态的功能
# 这些浏览器在执行这些功能时会出错。
# 第二个标识针对IE4.0b2设置。其中有一条不完整的HTTP/1.1指令
# 在301或302(重定向)响应时不能正确的保持激活状态
#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0

#
# 下面的标识通过不产生基本的1.1响应取消对违反HTTP/1.0标准的浏览器的响应。
#
BrowserMatch "RealPlayer 4.0" force-response-1.0
BrowserMatch "Java/1.0" force-response-1.0
BrowserMatch "JDK/1.0" force-response-1.0

</IfModule>
# 浏览器定制标识结束

#
# 允许使用URL"http://servername/server-status"的形式查看服务器状态报告
# 修改 ".your_domain.com"来匹配相应的域名以激活此功能
#
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .your_domain.com
#</Location>

#
# 允许使用URL"://servername/server-info"(要求加载mod_info.c),
# 来远程察看服务器配置报告。
# 修改 ".your_domain.com"来匹配相应的域名以激活此功能
#
#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from .your_domain.com
#</Location>

#
# 据报有人试图利用一个老的1.1漏洞。
# 这个漏洞与CGI脚本在Apache服务器上分布有关。
# 通过取消下面几行的注释符,可以将此类攻击记录转移到phf.apache.org上的记录脚本上。
# 或者也可以利用脚本scriptsupport/phf_abuse_log.cgi记录在本地服务器上。
#
#<Location /cgi-bin/phf*>
#    Deny from all
#    ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>

#
# 代理服务器标识。取消下列行的注释符可激活代理服务器。
#
#<IfModule mod_proxy.c>
#    ProxyRequests On

#    <Directory proxy:*>
#        Order deny,allow
#        Deny from all
#        Allow from .your_domain.com
#    </Directory>

#
# 激活/取消处理HTTP/1.1 "Via:" 报头
# ("Full":加入服务器版本; "Block":取消所有外发的Via: 报头)
# 可设置值: Off | On | Full | Block
#
#    ProxyVia On

#
# 可修改下列各行并取消注释符来激活缓存。
# (没有CacheRoot标识就不使用缓存)
#
#    CacheRoot "E:/Program Files/Apache Group/Apache/proxy"
#    CacheSize 5
#    CacheGcInterval 4
#    CacheMaxExpire 24
#    CacheLastModifiedFactor 0.1
#    CacheDefaultExpire 1
#    NoCache a_domain.com another_domain.edu joes.garage_sale.com

#</IfModule>
# 代理标识结束

### 部分 3: 虚拟主机
#
# 虚拟主机: 如果希望在一台服务器上实现多个域名和主机名的服务,
# 可设置VirtualHost来实现。Most configurations
# 大部分的设置使用基于名称的虚拟主机,这样服务器就不必为IP地址操心。
# 这些用星号在下面的标识中标出。
#
# 在试图设置虚拟主机前
# 请阅读<URL:http://www.apache.org/docs/vhosts/>中的文档。
# 以了解细节问题。
#
# 可用命令行参数 '-S'来确认虚拟主机的设置。
#

#
# 使用基于名称的虚拟主机
#
#NameVirtualHost *

#
# 虚拟主机实例:
# 几乎所有的Apache标识都可用于虚拟主机内。
# 第一个VirtualHost部分用于申请一个无重复的服务器名。
#
#<VirtualHost *>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

PHP100视频教程(2012版)解压密码

PHP100视频教程(2012版)解压密码

来源网络整理,后续如有新密码,会更新,请知悉!

亲测全部正确:

<第13讲>1348-293-233-212

<第17讲>1931-223-133-223

<第18讲>2811-101-111-928

<第24讲>sjxu-fjr21-23ks-xir4

<第30讲>PHP100-3209-3434-6129-211

<第36讲>php100-13619-9254-2060-463-#

<第37讲>php100-64629-1071-1597-653-#

<第38讲>php100-23353-3979-4140-307-#

<第39讲>php100-78230-1947-8283-296-#

<第40讲>php100-12697-1445-8120-143-#

<第41讲>php100-15191-4441-2243-719-#

<第42讲>php100-49149-8404-2747-647-#

<第43讲>php100-33010-6302-8226-798-#

<第44讲>php100-20211-4605-3774-694-#

<第45讲>php100-19190-5281-5983-308-#

<第46讲>php100-83383-5798-8948-960-#

<第47讲>php100-41228-8126-2263-822-#

<第48讲>php100-36163-9733-7021-318-#

<第49讲>php100-76626-3589-3816-318-#

<第50讲>php100-36054-5161-4743-344-#

<第51讲>php100-12883-7419-8393-368-#

<第52讲>php100-60553-7831-8862-813-#

<第53讲>php100-97500-8366-4744-750-#

<第54讲>php100-87162-6492-8131-600-#

<第55讲>php100-37976-4180-8617-336-#

 

声明:分享仅作学习使用,如有造成版权人利益,请联系本站,作删除处理。