Current File : //proc/thread-self/root/usr/local/lsws/docs/Rewrite_Help.html |
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>LiteSpeed Web Server Users' Manual - Rewrite</title>
<meta name="description" content="LiteSpeed Web Server Users' Manual - Rewrite." />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex">
<link rel="shortcut icon" href="img/favicon.ico" />
<link rel="stylesheet" type="text/css" href="css/hdoc.css">
</head>
<body>
<div class="pagewrapper clearfix"><aside class="sidetree ls-col-1-5">
<figure>
<img src="img/lsws_logo.svg" alt="lightspeed web server logo"
width="100px"/>
</figure>
<h2 class="ls-text-thin">
LiteSpeed Web Server
<br />
<span class="current"><a href="index.html">Users' Manual</a></span>
</h2>
<h3 class="ls-text-muted">Version 6.3 — Rev. 0</h3>
<hr/>
<div>
<ul>
<li><a href="license.html">License Enterprise</a></li>
<li><a href="intro.html">Introduction</a></li>
<li><a href="install.html">Installation</a></li>
<li>
<a href="admin.html">Administration</a>
<ul class="menu level2">
<li><a href="ServerStat_Help.html">Service Manager</a></li>
<li><a href="Real_Time_Stats_Help.html">Real-Time Stats</a></li>
</ul>
</li>
<li><a href="security.html">Security</a></li>
<li>
<a href="config.html">Configuration</a>
<ul class="level2">
<li><a href="ServGeneral_Help.html">Server General</a></li>
<li><a href="ServLog_Help.html">Server Log</a></li>
<li><a href="ServTuning_Help.html">Server Tuning</a></li>
<li><a href="ServSecurity_Help.html">Server Security</a></li>
<li><a href="Cache_Help.html">Page Cache</a></li>
<li><a href="PageSpeed_Config.html">PageSpeed Config</a></li>
<li><a href="ExtApp_Help.html">External Apps</a></li>
<ul class="level3">
<li><a href="External_FCGI.html">Fast CGI App</a></li>
<li><a href="External_FCGI_Auth.html">Fast CGI Authorizer</a></li>
<li><a href="External_LSAPI.html">LSAPI App</a></li>
<li><a href="External_Servlet.html">Servlet Engine</a></li>
<li><a href="External_WS.html">Web Server</a></li>
<li><a href="External_PL.html">Piped logger</a></li>
<li><a href="External_LB.html">Load Balancer</a></li>
</ul>
<li><a href="ScriptHandler_Help.html">Script Handler</a></li>
<li><a href="PHP_Help.html">PHP</a></li>
<li><a href="App_Server_Help.html">App Server Settings</a></li>
<li><a href="Listeners_General_Help.html">Listener General</a></li>
<li><a href="Listeners_SSL_Help.html">Listener SSL</a></li>
<li><a href="Templates_Help.html">Virtual Host Templates</a></li>
<li><a href="VirtualHosts_Help.html">Virtual Host Basic</a></li>
<li><a href="VHGeneral_Help.html">Virtual Host General</a></li>
<li><a href="VHSecurity_Help.html">Virtual Host Security</a></li>
<li><a href="VHSSL_Help.html">Virtual Host SSL</a></li>
<li>
<a href="VHPageSpeed_Config.html">Virtual Host PageSpeed Config</a>
</li>
<li><span class="current"><a href="Rewrite_Help.html">Rewrite</a></span></li>
<li><a href="Context_Help.html">Context</a></li>
<ul class="level3">
<li><a href="Static_Context.html">Static Context</a></li>
<li>
<a href="Java_Web_App_Context.html">Java Web App Context</a>
</li>
<li><a href="Servlet_Context.html">Servlet Context</a></li>
<li><a href="FCGI_Context.html">Fast CGI Context</a></li>
<li><a href="LSAPI_Context.html">LSAPI Context</a></li>
<li><a href="Proxy_Context.html">Proxy Context</a></li>
<li><a href="CGI_Context.html">CGI Context</a></li>
<li><a href="LB_Context.html">Load Balancer Context</a></li>
<li><a href="Redirect_Context.html">Redirect Context</a></li>
<li><a href="App_Server_Context.html">App Server Context</a></li>
<li><a href="Rails_Context.html">Rack/Rails Context</a></li>
</ul>
<li><a href="VHAddOns_Help.html">Add-ons</a></li>
</ul>
</li>
<li>
<a href="webconsole.html">Web Console</a>
<ul class="level2">
<li><a href="AdminGeneral_Help.html">Admin Console General</a></li>
<li><a href="AdminSecurity_Help.html">Admin Console Security</a></li>
<li>
<a href="AdminListeners_General_Help.html">
Admin Listener General
</a>
</li>
<li>
<a href="AdminListeners_SSL_Help.html">Admin Listener SSL</a>
</li>
</ul>
</li>
</ul>
</div>
</aside>
<article class="contentwrapper ls-col-3-5 clearfix"><div class="nav-bar ls-spacer-micro-top"><div class="prev">« <a href="VHPageSpeed_Config.html">Virtual Host PageSpeed Config</a></div><div class="center"><a href="config.html">Configuration</a></div><div class="next"><a href="Context_Help.html">Context</a> »</div></div>
<h1>Rewrite</h1><h2 id="top">Table of Contents</h2><section class="toc"><section class="toc-row"><header>Rewrite Control</header><p>
<a href="#enableRewrite">Enable Rewrite</a> | <a href="#rewriteLogLevel">Log Level</a></p></section>
<section class="toc-row"><header>Rewrite Map</header><p>
<a href="#rewriteMapName">Name</a> | <a href="#rewriteMapLocation">Location</a></p></section>
<section class="toc-row"><header>Rewrite Rules</header><p>
<a href="#rewriteRules">Rewrite Rules</a></p></section>
</section>
<section><div class="helpitem"><article class="ls-helpitem"><div><header id="enableRewrite"><h3>Enable Rewrite<span class="ls-permlink"><a href="#enableRewrite"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies whether to enable LiteSpeed's URL rewrite engine. This option can be customized at the virtual host or context level, and is inherited along the directory tree until it is explicitly overridden.</p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><div><header id="rewriteLogLevel"><h3>Log Level<span class="ls-permlink"><a href="#rewriteLogLevel"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies the level of detail of the rewrite engine's debug output. This value ranges from <span class="val">0</span> - <span class="val">9</span>. <span class="val">0</span> disables logging. <span class="val">9</span> produces the most detailed log. The server and virtual host's error log <span class="tagl"><a href="ServGeneral_Help.html#log_logLevel">Log Level</a></span> must be set to at least <span class="val">INFO</span> for this option to take effect. This is useful when testing rewrite rules.</p> <h4>Syntax</h4><p>Integer number</p> <h4>See Also</h4><p class="ls-text-small">Server <span class="tagl"><a href="ServGeneral_Help.html#log_logLevel">Log Level</a></span>, Virtual Host <span class="tagl"><a href="VHGeneral_Help.html#vhlog_logLevel">Log Level</a></span></p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><div><header id="rewriteMapName"><h3>Name<span class="ls-permlink"><a href="#rewriteMapName"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies a unique name for the rewrite map at the virtual host level. This name will be used by a mapping-reference in rewrite rules. When referencing this name, one of the following syntaxes should be used: <blockquote><code> $\{MapName:LookupKey\}<br/> $\{MapName:LookupKey|DefaultValue\} </code></blockquote><br/> The implementation of LiteSpeed's rewrite engine follows the specifications of Apache's rewrite engine. For more details about rewrite maps, please refer to <a href="http://httpd.apache.org/docs/current/mod/mod_rewrite.html" target="_blank" rel="noopener noreferrer">Apache's mod_rewrite document</a>.</p> <h4>Syntax</h4><p>string</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><div><header id="rewriteMapLocation"><h3>Location<span class="ls-permlink"><a href="#rewriteMapLocation"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies the location of the rewrite map using the syntax <span class="val">MapType:MapSource</span>.<br/> LiteSpeed's rewrite engine supports three types of rewrite maps: <ul> <li><b>Standard Plain Text</b> <blockquote> <b>MapType:</b> txt; <br/> <b>MapSource:</b> file path to a valid plain ASCII file. </blockquote> Each line of this file should contain two elements separated by blank spaces. The first element is the key and the second element is the value. Comments can be added with a leading "<span class="val">#</span>" sign. </li> <li><b>Randomized Plain Text</b> <blockquote> <b>MapType:</b> rnd;<br/> <b>MapSource:</b> file path of a valid plain ASCII file. </blockquote> File format is similar to the Standard Plain Text file, except that the second element can contain multiple choices separated by a "<span class="val">|</span>" sign and chosen randomly by the rewrite engine. </li> <li><b>Internal Function</b> <blockquote> <b>MapType:</b> int;<br/> <b>MapSource:</b> Internal string function </blockquote> 4 functions are available: <ul> <li><b>toupper:</b> converts lookup key to upper cases.</li> <li><b>tolower:</b> converts lookup key to lower cases.</li> <li><b>escape:</b> perform URL encoding on lookup key.</li> <li><b>unescape:</b> perform URL decoding on lookup key.</li> </ul> </li> The following map types available in Apache have not been implemented in LiteSpeed:<br/> Hash File and External Rewriting Program. </ul> The implementation of LiteSpeed's rewrite engine follows the specifications of Apache's rewrite engine. For more details about rewrite map, please refer to <a href="http://httpd.apache.org/docs/current/mod/mod_rewrite.html" target="_blank" rel="noopener noreferrer">Apache's mod_rewrite document</a>.</p> <h4>Syntax</h4><p>String</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><div><header id="rewriteRules"><h3>Rewrite Rules<span class="ls-permlink"><a href="#rewriteRules"></a></span><span class="top"><a href="#top">⇑</a></span></h3></header></div><h4>Description</h4><p>Specifies a list of rewrite rules at the virtual host level.<br/><br/> Do NOT add any document root level rewrite rules here. If you have any document root level rewrite rules from .htaccess, you should instead create a static context with uri "/" and add the rewrite rules there.<br/><br/> A rewrite rule is comprised of one <span class="val">RewriteRule</span> directive and optionally preceded by multiple <span class="val">RewriteCond</span> directives. <ul> <li>Each directive should take only one line.</li> <li> <span class="val">RewriteCond</span> and <span class="val">RewriteRule</span> follow Apache's rewrite directive syntax. Just copy and paste rewrite directives from your Apache configuration files. </li> <li> There are minor differences between LiteSpeed and Apache mod_rewrite implementation: <ul> <li> <span class="val">%\{LA-U:variable\}</span> and <span class="val">%\{LA-F:variable\}</span> are ignored by the LiteSpeed rewrite engine </li> <li> Two new server variables are added in the LiteSpeed rewrite engine: <span class="val">%\{CURRENT_URI\}</span> represents the current URI being processed by the rewrite engine and <span class="val">%\{SCRIPT_NAME\}</span> has the same meaning as the corresponding CGI environment variable. </li> <li> The LiteSpeed rewrite engine will stop processing rewrite rules after encountering an <span class="val">[L]</span> flag to avoid looping while Apache mod_rewrite will stop processing rewrite rules for the current iteration only. This behavior is similar to that of the <span class="val">[END]</span> flag in Apache mod_rewrite. </li> </ul> </li> </ul><br/> The implementation of LiteSpeed's rewrite engine follows Apache's rewrite engine specifications. For more details about rewrite rules, please refer to <a href="https://httpd.apache.org/docs/current/mod/mod_rewrite.html" target="_blank" rel="noopener noreferrer"> Apache's mod_rewrite document </a> and <a href="https://httpd.apache.org/docs/current/rewrite/" target="_blank" rel="noopener noreferrer"> Apache's URL rewriting guide </a>.</p> <h4>Syntax</h4><p>string</p> </article> </div>
</section>
</article><div class="ls-col-1-1"><footer class="copyright">Copyright © 2003-2020. <a href="https://www.litespeedtech.com">LiteSpeed Technologies Inc.</a> All rights reserved.</footer>
</div></div>
</body>
</html>