More »
Loading...

Resource

Related

RewriteRule Flags

  • C
  • Chained with next rule
  • CO=cookie
  • Set specified cookie
  • E=var:-value
  • Set environmental variable “var” to “value”
  • F
  • Forbidden (403 header)
  • G
  • Gone no longer exists
  • H=handler
  • Set handler
  • L
  • Last stop processing rules
  • N
  • Next continue processing
  • NC
  • Case insensitive
  • NE
  • Do not escape output
  • NS
  • Ignore if subrequest
  • P
  • Proxy
  • PT
  • Pass through
  • R[=code]
  • Redirect to new URL, with optional code (see below)
  • QSA
  • Append query string
  • S=x
  • Skip next x rules
  • T=mime-type
  • Set mime type

RegExp

Regular Expressions Syntax

  • ^
  • Start of string
  • $
  • End of string
  • .
  • Any single character
  • (a|b)
  • a or b
  • (...)
  • Group section
  • [abc]
  • In range (a, b or c)
  • [^abc]
  • Not in range
  • \s
  • White space
  • a?
  • Zero or one of a
  • a*
  • Zero or more of a
  • a*?
  • Zero or more, ungreedy
  • a+
  • One or more of a
  • a+?
  • One or more, ungreedy
  • a{3}
  • Exactly 3 of a
  • a{3,}
  • 3 or more of a
  • a{,6}
  • Up to 6 of a
  • a{3,6}
  • 3 to 6 of a
  • a{3,6}?
  • 3 to 6 of a, ungreedy
  • \
  • Escape character
  • [:punct:]
  • Any punctu-ation symbol
  • [:space:]
  • Any space character
  • [:blank:]
  • Space or tab

Directives

  • RewriteEngine
  • RewriteOptions
  • RewriteLog
  • RewriteLogLevel
  • RewriteLock
  • RewriteMap
  • RewriteBase
  • RewriteCond
  • RewriteRule

Miscellaneous

RewriteCond Flags

  • NC
  • Case insensitive
  • OR
  • Combine with next rule using 'OR' instead of the default of 'AND'

Redirection Header Codes

  • 301
  • Moved permanently
  • 302
  • Moved temporarily (default)

Sample Rule: Site Moved

  • # Site moved permanently
  • RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
  • RewriteRule ^(.*)$ http://www.domain2.com/$1 [R=301,L]
  • Rewrites domain.com to domain2.com

Sample Rule: Temporary Page Move

  • # Page has moved temporarily
  • RewriteRule ^page.html$ new_page.html [R,NC,L]
  • Rewrites domain.com/page.html to domain.com/new_page.html

Sample Rule: Nice URLs

  • # Nice URLs (no query string)
  • RewriteRule ^([A-Za-z0-9]+)/?$ categories.php?name=$1 [L]
  • Rewrites domain.com/categoryname1/ to domain.com/categories.php?name=category-name1

HTTP Headers

  • %{HTTP_USER_AGENT}
  • %{HTTP_REFERER}
  • %{HTTP_COOKIE}
  • %{HTTP_FORWARDED}
  • %{HTTP_HOST}
  • %{HTTP_PROXY_CONNECTION}
  • %{HTTP_ACCEPT}

Server Internals

  • %{DOCUMENT_ROOT}
  • %{SERVER_ADMIN}
  • %{SERVER_NAME}
  • %{SERVER_ADDR}
  • %{SERVER_PORT}
  • %{SERVER_PROTOCOL}
  • %{SERVER_SOFTWARE}

Special

  • %{API_VERSION}
  • %{THE_REQUEST}
  • %{REQUEST_URI}
  • %{REQUEST_FILENAME}
  • %{IS_SUBREQ}
  • %{HTTPS}

Request

  • %{REMOTE_ADDR}
  • %{REMOTE_HOST}
  • %{REMOTE_PORT}
  • %{REMOTE_USER}
  • %{REMOTE_IDENT}
  • %{REQUEST_METHOD}
  • %{SCRIPT_FILENAME}
  • %{PATH_INFO}
  • %{QUERY_STRING}
  • %{AUTH_TYPE}

Time

  • %{TIME_YEAR}
  • %{TIME_MON}
  • %{TIME_DAY}
  • %{TIME_HOUR}
  • %{TIME_MIN}
  • %{TIME_SEC}
  • %{TIME_WDAY}
  • %{TIME}