⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 env.html

📁 这个是我在web培训时老师提供的手册
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="keywords" content="Apache, 中文, 手册, 中文版, 中文手册, 中文版手册, 参考手册, 中文参考手册, 金步国" />
<meta name="description" content="Apache 2.2 中文版参考手册" />
<meta name="author" content="金步国" />
<link href="./style/css/manual-zip.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-zip-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<title>Apache的环境变量 - Apache 2.2 中文版参考手册</title>
</head>
<body id="manual-page">
<div id="page-header"><p class="menu"><a href="./mod/index.html">模块索引</a> | <a href="./mod/directives.html">指令索引</a> | <a href="./faq/index.html">常见问题</a> | <a href="./glossary.html">词汇表</a> | <a href="./sitemap.html">站点导航</a></p><p class="apache">Apache HTTP Server 版本2.2</p><img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./index.html"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path"><a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">文档</a> &gt; <a href="./index.html">版本2.2</a></div>

<div id="translation-info">   <a href="./translator_announcement.html#thanks">致谢</a> | <a href="./translator_announcement.html#announcement">译者声明</a> | 本篇译者:<a href="mailto:&#099;sfr&#0097;nk&#0064;&#099;itiz&#046;n&#0101;t">金步国</a> | 本篇译稿最后更新:2006年1月3日 | <a href="./translator_announcement.html#last_new">获取最新版本</a></div>
<div id="page-content"><div id="preamble"><h1>Apache的环境变量</h1>


    <p>Apache HTTP服务器提供了一个机制,可以把信息存储在叫做<em>环境变量</em>(environment variable)的命名变量中。这个信息可以用于控制诸如日志记录和访问控制之类的操作。此外,还可以作为一个和诸如CGI脚本这样的外部程序进行沟通的机制。本文档讨论了操作和使用这些变量的不同方法。</p>

    <p>尽管这些变量也被称作<em>环境变量</em>,但它们和底层的、由操作系统控制的环境变量不能混为一谈。这些变量仅在Apache内部被存储和操纵。仅当它们被提供给外部CGI脚本或服务器端包含脚本(SSI)时,才会变成真正的操作系统环境变量。如果你想操作作为服务器运行基础的操作系统的环境变量,你必须使用由你的操作系统shell提供的标准环境操作机制。</p>
  </div>
	<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="setting" id="setting">设置环境变量</a></h2>
    
    <table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="related">
<tr><th>相关模块</th><th>相关指令</th></tr>
<tr><td><ul><li><code class="module"><a href="./mod/mod_env.html">mod_env</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code></li><li><code class="module"><a href="./mod/mod_unique_id.html">mod_unique_id</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></code></li><li><code class="directive"><a href="./mod/mod_env.html#unsetenv">UnsetEnv</a></code></li></ul></td></tr>
</table>

    <h3><a name="basic-manipulation" id="basic-manipulation">基本的环境变量操作</a></h3>

        <p>设置一个Apache环境变量最基本的方法,就是使用没有什么限制的<code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code>指令。也可以使用<code class="directive"><a href="./mod/mod_env.html#passenv">PassEnv</a></code>指令将启动Apache的操作系统shell的环境变量传进来。</p>

    
    	<h3><a name="conditional" id="conditional">针对每个请求进行有条件的设定</a></h3>

        <p>为了具有额外的伸缩性,<code>mod_setenvif</code> 提供的指令允许针对每个请求特定的请求特性进行环境变量的设定。比如,可以仅在一个特定的浏览器(User-Agent)进行请求时,或仅在一个特定的"Referer:"头被发现时进行环境变量的设置。如果使用<code>mod_rewrite</code>的<code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>指令中的 <code>[E=...]</code> 选项来进行环境变量的设置,还会具有更大伸缩性。</p>

    
    	<h3><a name="unique-identifiers" id="unique-identifiers">唯一标识符</a></h3>
        

        <p>最后,<code>mod_unique_id</code>将为每个请求设定一个<code>UNIQUE_ID</code>环境变量的值,这个值对"所有"请求都是唯一的,即使在极为特定的条件下。</p>

    
    <h3><a name="standard-cgi" id="standard-cgi">标准CGI变量</a></h3>
        

        <p>除了所有Apache配置中的环境变量和由操作系统shell传进来的环境变量之外,还有一组环境变量是提供给CGI脚本和SSI页面的,此组环境变量包含由<a href="http://cgi-spec.golux.com/">CGI规范</a>要求的与请求相关的元信息。</p>

    
    	<h3><a name="caveats" id="caveats">一些告诫</a></h3>
        

        <ul>
          <li>用环境变量操作指令来覆盖或修改标准的CGI变量是行不通的。</li>

          <li>当用<code class="program"><a href="./programs/suexec.html">suexec</a></code>来运行CGI脚本时,环境变量将会被清除到在CGI脚本运行之前只剩一组<em>安全</em>变量。<em>安全</em>变量的列表在编译时由suexec.c定义。</li>

          <li>出于可移植性的考虑,环境变量的命名必须仅包含字母、数字、下划线。此外,第一个符号不能为数字。不符合此要求的字符将在传递给CGI脚本和SSI页面时被下划线取代。</li>
        </ul>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="using" id="using">使用环境变量</a></h2>
    

    <table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="related">
<tr><th>相关模块</th><th>相关指令</th></tr>
<tr><td><ul><li><code class="module"><a href="./mod/mod_authz_host.html">mod_authz_host</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code></li><li><code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_authz_host.html#allow">Allow</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="./mod/mod_authz_host.html#deny">Deny</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code></li><li><code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code></li></ul></td></tr>
</table>

    <h3><a name="cgi-scripts" id="cgi-scripts">CGI脚本</a></h3>
        

        <p>环境变量的主要用途之一就是把信息传递给CGI脚本。如前所述,递给CGI脚本的环境变量,除了在Apache配置中定义的以外,还包含一组与请求相关的标准元信息的环境变量。更多细节请参见<a href="howto/cgi.html">CGI教程</a>。</p>

    
    <h3><a name="ssi-pages" id="ssi-pages">SSI页面</a></h3>
        

        <p>由mod_include的<code>INCLUDES</code>过滤器处理的服务器端解析(Server-parsed[SSI])文档能够用<code>echo</code>元素打印出环境变量,并能在流程控制元素中使用环境变量来基于请求特性而产生部分页面。Apache当然也会将上述的标准CGI环境变量提供给SSI页面。更多细节请参见<a href="howto/ssi.html">SSI教程</a>。</p>

    
    <h3><a name="access-control" id="access-control">访问控制</a></h3>
        

        <p>可以用 <code>allow from env=</code> 和 <code>deny from env=</code> 指令基于环境变量的值对服务器进行访问控制。在结合了<code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>之后,能更灵活的基于客户端特性对服务器进行访问控制。比如,你能用这些指令来拒绝一些特定浏览器(User-Agent)的访问。</p>

    
    	<h3><a name="logging" id="logging">条件日志记录</a></h3>
        

        <p>可以用<code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code>的可选项"<code>%e</code>"将环境变量写入访问日志中。此外,还可以用<code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>指令基于环境变量的状态来决定是否将请求写入日志。在结合了<code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>之后,能更灵活的控制哪些请求将被记录。比如,你可以选择不对以<code>gif</code>为结尾的文件名请求进行记录,或者选择只记录内网之外的客户端请求。</p>

    
    	<h3><a name="response-headers" id="response-headers">条件响应头</a></h3>
        

        <p><code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code>指令能根据一个环境变量是否存在来决定是否将一个HTTP头放入对客户端的响应里。这将使诸如从客户端收到特定的请求头时返回特定的应答头这样的事情成为可能。</p>

    <h3><a name="external-filter" id="external-filter">外部过滤器的激活</a></h3>

        <p>由<code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code>的<code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code>指令配置的外部过滤器可以用 <code>disableenv=</code> 和 <code>enableenv=</code> 选项根据环境变量的条件进行激活。</p>
    

    	<h3><a name="url-rewriting" id="url-rewriting">URL重写</a></h3>
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -