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

📄 mod_rewrite.html.en

📁 Apache官方在今天放出产品系列2.2的最新版本2.2.11的源码包 最流行的HTTP服务器软件之一
💻 EN
📖 第 1 页 / 共 5 页
字号:
          <strong>Server-Variables</strong>: These are variables of          the form             <strong><code>%{</code> <em>NAME_OF_VARIABLE</em>            <code>}</code></strong>          where <em>NAME_OF_VARIABLE</em> can be a string taken          from the following list:           <table>                      <tr>              <th>HTTP headers:</th> <th>connection &amp; request:</th> <th />	    </tr>            <tr>	      <td>		 HTTP_USER_AGENT<br />                 HTTP_REFERER<br />                 HTTP_COOKIE<br />                 HTTP_FORWARDED<br />                 HTTP_HOST<br />                 HTTP_PROXY_CONNECTION<br />                 HTTP_ACCEPT<br />              </td>              <td>                 REMOTE_ADDR<br />                 REMOTE_HOST<br />                 REMOTE_PORT<br />                 REMOTE_USER<br />                 REMOTE_IDENT<br />                 REQUEST_METHOD<br />                 SCRIPT_FILENAME<br />                 PATH_INFO<br />                 QUERY_STRING<br />                 AUTH_TYPE<br />              </td>	      	      <td />            </tr>            <tr>              <th>server internals:</th> <th>date and time:</th> <th>specials:</th>	    </tr>            <tr>	      <td>	         DOCUMENT_ROOT<br />                 SERVER_ADMIN<br />                 SERVER_NAME<br />                 SERVER_ADDR<br />                 SERVER_PORT<br />                 SERVER_PROTOCOL<br />                 SERVER_SOFTWARE<br />              </td>              <td>                 TIME_YEAR<br />                 TIME_MON<br />                 TIME_DAY<br />                 TIME_HOUR<br />                 TIME_MIN<br />                 TIME_SEC<br />                 TIME_WDAY<br />                 TIME<br />              </td>              <td>                 API_VERSION<br />                 THE_REQUEST<br />                 REQUEST_URI<br />                 REQUEST_FILENAME<br />                 IS_SUBREQ<br />                 HTTPS<br />              </td>            </tr>          </table>                <p>These variables all                correspond to the similarly named HTTP                MIME-headers, C variables of the Apache server or                <code>struct tm</code> fields of the Unix system.                Most are documented elsewhere in the Manual or in                the CGI specification. Those that are special to                mod_rewrite include those below.</p>	<div class="note">                <dl>                  <dt><code>IS_SUBREQ</code></dt>                  <dd>Will contain the text "true" if the request                  currently being processed is a sub-request,                  "false" otherwise. Sub-requests may be generated                  by modules that need to resolve additional files                  or URIs in order to complete their tasks.</dd>                  <dt><code>API_VERSION</code></dt>                  <dd>This is the version of the Apache module API                  (the internal interface between server and                  module) in the current httpd build, as defined in                  include/ap_mmn.h. The module API version                  corresponds to the version of Apache in use (in                  the release version of Apache 1.3.14, for                  instance, it is 19990320:10), but is mainly of                  interest to module authors.</dd>                  <dt><code>THE_REQUEST</code></dt>                  <dd>The full HTTP request line sent by the                  browser to the server (e.g., "<code>GET                  /index.html HTTP/1.1</code>"). This does not                  include any additional headers sent by the                  browser.</dd>                  <dt><code>REQUEST_URI</code></dt>                  <dd>The resource requested in the HTTP request                  line. (In the example above, this would be                  "/index.html".)</dd>                  <dt><code>REQUEST_FILENAME</code></dt>                  <dd>The full local filesystem path to the file or                  script matching the request.</dd>                  <dt><code>HTTPS</code></dt>                  <dd>Will contain the text "on" if the connection is                  using SSL/TLS, or "off" otherwise.  (This variable                  can be safely used regardless of whether or not                  <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is loaded).</dd>                </dl></div>        </li>      </ul>      <p>Other things you should be aware of:</p>      <ol>        <li>The variables SCRIPT_FILENAME and REQUEST_FILENAME        contain the same value - the value of the        <code>filename</code> field of the internal        <code>request_rec</code> structure of the Apache server.        The first name is the commonly known CGI variable name        while the second is the appropriate counterpart of        REQUEST_URI (which contains the value of the        <code>uri</code> field of <code>request_rec</code>).</li>        <li>        <code>%{ENV:variable}</code>, where <em>variable</em> can be	any environment variable, is also available. 	This is looked-up via internal        Apache structures and (if not found there) via        <code>getenv()</code> from the Apache server process.</li>        <li>        <code>%{SSL:variable}</code>, where <em>variable</em> is the        name of an <a href="mod_ssl.html#envvars">SSL environment        variable</a>, can be used whether or not        <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is loaded, but will always expand to        the empty string if it is not.  Example:        <code>%{SSL:SSL_CIPHER_USEKEYSIZE}</code> may expand to        <code>128</code>.</li>        <li>        <code>%{HTTP:header}</code>, where <em>header</em> can be	any HTTP MIME-header name, can always be used to obtain the	value of a header sent in the HTTP request.        Example: <code>%{HTTP:Proxy-Connection}</code> is        the value of the HTTP header        ``<code>Proxy-Connection:</code>''.        <p>If a HTTP header is used in a condition this header is added to        the Vary header of the response in case the condition evaluates to        to true for the request. It is <strong>not</strong> added if the        condition evaluates to false for the request. Adding the HTTP header        to the Vary header of the response is needed for proper caching.</p>        <p>It has to be kept in mind that conditions follow a short circuit        logic in the case of the '<strong><code>ornext|OR</code></strong>' flag        so that certain conditions might not be evaluated at all.</p></li>        <li>        <code>%{LA-U:variable}</code> can be used for look-aheads which perform        an internal (URL-based) sub-request to determine the final	value of <em>variable</em>. This can be used to access        variable for rewriting which is not available at the current 	stage, but will be set in a later phase.	<p>For instance, to rewrite according to the        <code>REMOTE_USER</code> variable from within the        per-server context (<code>httpd.conf</code> file) you must        use <code>%{LA-U:REMOTE_USER}</code> - this        variable is set by the authorization phases, which come	<em>after</em> the URL translation phase (during which mod_rewrite	operates).</p>	<p>On the other hand, because mod_rewrite implements        its per-directory context (<code>.htaccess</code> file) via        the Fixup phase of the API and because the authorization        phases come <em>before</em> this phase, you just can use	<code>%{REMOTE_USER}</code> in that context.</p></li>        <li>        <code>%{LA-F:variable}</code> can be used to perform an internal        (filename-based) sub-request, to determine the final value        of <em>variable</em>. Most of the time, this is the same as        LA-U above.</li>      </ol>      <p><em>CondPattern</em> is the condition pattern,       a regular expression which is applied to the      current instance of the <em>TestString</em>.      <em>TestString</em> is first evaluated, before being matched against      <em>CondPattern</em>.</p>      <p><strong>Remember:</strong> <em>CondPattern</em> is a      <em>perl compatible regular expression</em> with some      additions:</p>      <ol>        <li>You can prefix the pattern string with a        '<code>!</code>' character (exclamation mark) to specify a        <strong>non</strong>-matching pattern.</li>        <li>          There are some special variants of <em>CondPatterns</em>.          Instead of real regular expression strings you can also          use one of the following:           <ul>            <li>'<strong>&lt;CondPattern</strong>' (lexicographically 	    precedes)<br />            Treats the <em>CondPattern</em> as a plain string and            compares it lexicographically to <em>TestString</em>. True if            <em>TestString</em> lexicographically precedes            <em>CondPattern</em>.</li>            <li>'<strong>&gt;CondPattern</strong>' (lexicographically            follows)<br />            Treats the <em>CondPattern</em> as a plain string and            compares it lexicographically to <em>TestString</em>. True if            <em>TestString</em> lexicographically follows            <em>CondPattern</em>.</li>            <li>'<strong>=CondPattern</strong>' (lexicographically            equal)<br />            Treats the <em>CondPattern</em> as a plain string and            compares it lexicographically to <em>TestString</em>. True if            <em>TestString</em> is lexicographically equal to            <em>CondPattern</em> (the two strings are exactly            equal, character for character). If <em>CondPattern</em>            is <code>""</code> (two quotation marks) this            compares <em>TestString</em> to the empty string.</li>            <li>'<strong>-d</strong>' (is            <strong>d</strong>irectory)<br />             Treats the <em>TestString</em> as a pathname and tests            whether or not it exists, and is a directory.</li>            <li>'<strong>-f</strong>' (is regular            <strong>f</strong>ile)<br />             Treats the <em>TestString</em> as a pathname and tests            whether or not it exists, and is a regular file.</li>            <li>'<strong>-s</strong>' (is regular file, with            <strong>s</strong>ize)<br />            Treats the <em>TestString</em> as a pathname and tests            whether or not it exists, and is a regular file with size greater            than zero.</li>            <li>'<strong>-l</strong>' (is symbolic            <strong>l</strong>ink)<br />            Treats the <em>TestString</em> as a pathname and tests            whether or not it exists, and is a symbolic link.</li>            <li>'<strong>-x</strong>' (has e<strong>x</strong>ecutable

⌨️ 快捷键说明

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