关于httpd的modules mod_negotiation

mod_negotiation:内容协商模块,更准确的来说是内容选择,是一个从几个有效的文档中,选择一个最能匹配客户端性能的文档的过程。

2015-03-10 15:38:00

发现这个模块的起因是这样的:
访问 /html/a/ ,变成了/html.php/a/,因为服务器中不存在html目录,但是有html.php,这个模块就自作主张,将html目录变成了文件html.php,后面加参数/a/。

此模块的作用:
如果服务器接收了一个对/some/dir/foo的请求,而/some/dir/foo并不存在,则服务器会查找这个目录下所有的 foo.* 文件,并有效地伪造一个说明这些 foo.* 文件的类型表,假定客户可能请求的一个,把他们指定为这个类型的媒体类型及内容编码。最终选择其中最符合客户请求的文档,返回给客户。

内容协商有两种实现方法:
1.使用类型表(一个包含type-map处理器信息的文件)明确地列出各变种的文件名。
2.使用“MultiViews”搜索(由Options 指令中的MultiViews 激活),即服务器执行一个隐含的文件名模式匹配,并在其结果中选择。

徜徉于这片废土的我们.....应当去哪里追寻更好的自己?