mod_rewrite RewriteRule Flags

C Chained with next rule
CO=cookie Set specified cookie
E=var:­value Set enviro­nmental 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 insens­itive
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

mod_rewrite RewriteCond Flags

NC Case insens­itive
OR Combine with next rule using 'OR' instead of the default of 'AND'

Redirection Header Codes

301 Moved perman­ently
302 Moved tempor­arily (default)

mod_rewrite Directives

Rewrit­eEngine
Rewrit­eOp­tions
RewriteLog
Rewrit­eLo­gLevel
Rewrit­eLock
RewriteMap
Rewrit­eBase
Rewrit­eCond
Rewrit­eRule
 

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

There's an excellent regular expression tester at: http:/­/re­gex­pal.com/

mod_rewrite Server Variables: HTTP Headers

%{HTTP­_US­ER_­AGENT}
%{HTTP­_RE­FERER}
%{HTTP­_CO­OKIE}
%{HTTP­_FO­RWA­RDED}
%{HTTP­_HOST}
%{HTTP­_PR­OXY­_CO­NNE­CTION}
%{HTTP­_AC­CEPT}

mod_rewrite Server Variables: Server Internals

%{DOCU­MEN­T_ROOT}
%{SERV­ER_­ADMIN}
%{SERV­ER_­NAME}
%{SERV­ER_­ADDR}
%{SERV­ER_­PORT}
%{SERV­ER_­PRO­TOCOL}
%{SERV­ER_­SOF­TWARE}
 

mod_rewrite Sample Rule: Site Moved

# Site moved perman­ently
Rewrit­eCond %{HTTP­_HOST} ^www.d­oma­in.com$ [NC]
Rewrit­eRule ^(.*)$ http:/­/ww­w.d­oma­in2.com/$1 [R=301,L]

Rewrites domain.com to domain­2.com

mod_rewrite Sample Rule: Temporary Page Move

# Page has moved tempor­arily
Rewrit­eRule ^page.h­tml$ new_pa­ge.html [R,NC,L]

Rewrites domain.co­m/p­age.html to domain.co­m/n­ew_­pag­e.html

mod_rewrite Sample Rule: Nice URLs

# Nice URLs (no query string)
Rewrit­eRule ^([A-Z­a-z­0-9­-]+)/?$ catego­rie­s.p­hp?­name=$1 [L]

Rewrites domain.co­m/c­ate­gor­y-n­ame-1/ to domain.co­m/c­ate­gor­ies.ph­p?n­ame­=ca­teg­ory­-name-1

mod_rewrite Server Variables: Special

%{API_­VER­SION}
%{THE_­REQ­UEST}
%{REQU­EST­_URI}
%{REQU­EST­_FI­LENAME}
%{IS_S­UBREQ}
%{HTTPS}

mod_rewrite Server Variables: Request

%{REMO­TE_­ADDR}
%{REMO­TE_­HOST}
%{REMO­TE_­PORT}
%{REMO­TE_­USER}
%{REMO­TE_­IDENT}
%{REQU­EST­_ME­THOD}
%{SCRI­PT_­FIL­ENAME}
%{PATH­_INFO}
%{QUER­Y_S­TRING}
%{AUTH­_TYPE}

mod_rewrite Server Variables: Time

%{TIME­_YEAR}
%{TIME­_MON}
%{TIME­_DAY}
%{TIME­_HOUR}
%{TIME­_MIN}
%{TIME­_SEC}
%{TIME­_WDAY}
%{TIME}
 

Share This Cheat Sheet!

Favourited by 27 Members:

michaelfox nschurdell DaveChild redware xcjjzh gissehel adrienne rexington jdmyers naesk gLes sebbu simoneast schrodervictor pneumatix crss1138 emre avalitan Epoc akramwaseem Dranzz lyroge SoulReverie Dxerty Theosis relizont ThibaultGomarin

Comments

Beau Garcia Beau Garcia, 10:01 23 Feb 12

Nice work Dave. One of the better references I've found.

Dave Dave, 08:52 20 May 12

I had to disable JavaScript to highlight the text due to the silly sliding tile thing.

John John, 08:52 20 May 12

I keep having to turn off JavaScript!!!!!!!!!!!!!!!!!!!!!

Guy Chapman Guy Chapman, 10:31 1 Jul 12

Nice. Concise and well presented. Thanks.

vaibhav jain vaibhav jain, 14:37 21 Dec 12

thanks sir . i am beginner in web developing. thanks for help . i will use your code for rewrite my query string

panzz panzz, 08:43 16 Feb 13

what is ungreedy mean ?

Marvin Giron Marvin Giron, 10:32 29 May 13

I have a question: ¿How can I write a rule what redirect from a URL to URL:PORT

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.