RewriteRule

The rewrite engine enables regular-expression-based rewriting of URLs. The feature is enabled with the RewriteEngine On directive. Most rewrites are a single RewriteRule, or a combination of RewriteCond directives followed by a RewriteRule.

RewriteRule pattern substitution [[FLAG1, FLAG2, ...]]

Rewrites URL to substitution if the URL is successfully matched by pattern. The substitution string can contain back-references ($N) to the RewriteRule pattern, back-references (%N) to the last matched RewriteCond pattern, server-variables as in rule condition test-strings (%{VARNAME} ), and mapping-function calls ( ${mapname:key|default} ). Optional flags, listed in Table 53, cause the server to take various actions when a match occurs.

RewriteCond teststring pattern

Define a test condition (Table 54) for applying a RewriteRule. Multiple RewriteCond directives preceding a RewriteRule are combined with an implicit AND, unless specified as OR. The teststring can contain back-references ($N) to the RewriteRule pattern, back-references (%N) to the last matched RewriteCond pattern, server-variables as in rule condition test-strings ( %{VARNAME}), and mapping-function calls ( ${mapname:key|default}).

Server variables affecting rewrites are listed in Table 55.

Table 1-53. Apache RewriteRule flags

Modes

Meaning

C

Chain with next rule. If rule matches, apply the rewrite, and the following chained rewrites; otherwise, stop the chain.

CO=NAME:VAL:domain[:lifetime[:path]]

Set a cookie.

E=VAR:VAL

Set ...

Get Regular Expression Pocket Reference, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.