Flags are added to the end of a rewrite rule to tell Apache how to interpret and handle the rule. They can be used to tell Apache to treat the rule as case-insensitive, to stop processing rules if the current one matches, or a variety of other options. They are comma-separated, and contained in square brackets.
Here’s a list of the flags, with their meanings (this information is included on the cheat sheet, so no need to try to learn them all):
- C (chained with next rule)
- CO=cookie (set specified cookie)
- E=var:value (set environment variable var to value)
- F (forbidden – sends a 403 header to the user)
- G (gone – no longer exists)
- H=handler (set handler)
- L (last – stop processing rules)
- N (next – continue processing rules)
- NC (case insensitive)
- NE (do not escape special URL characters in output)
- NS (ignore this rule if the request is a subrequest)
- P (proxy – i.e., apache should grab the remote content specified in the substitution section and return it)
- PT (pass through – use when processing URLs with additional handlers, e.g., mod_alias)
- R (temporary redirect to new URL)
- R=301 (permanent redirect to new URL)
- QSA (append query string from request to substituted URL)
- S=x (skip next x rules)
- T=mime-type (force specified mime type)