Friday, September 13, 2013

mod_rewrite Cheat Sheet by DaveChild

mod_rewrite RewriteRule Flags

CChained with next rule
CO=cookieSet specified cookie
E=var:­valueSet enviro­nmental variable “var” to “value”
FForbidden (403 header)
GGone - no longer exists
H=handlerSet handler
LLast - stop processing rules
NNext - continue processing
NCCase insens­itive
NEDo not escape output
NSIgnore if subrequest
PProxy
PTPass through
R[=code]Redirect to new URL, with optional code (see below)
QSAAppend query string
S=xSkip next x rules
T=mime­-typeSet mime type

mod_rewrite RewriteCond Flags

NCCase insens­itive
ORCombine with next rule using 'OR' instead of the default of 'AND'

Redirection Header Codes

301Moved perman­ently
302Moved 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
\sWhite 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

http://www.cheatography.com/davechild/cheat-sheets/mod-rewrite/

3 comments: