Loading...
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}