Sunteți pe pagina 1din 37

How to redirect URL

with Apache web server

1 xx 2 xx 3 xx 4 xx 5 xx
Informational Success Redirection Client error Server error
1 2
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


• Main reason for redirect URL
• Preparing
p g stuff
• Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
Http status code
It iis response status
t t code
d which
hi h iis partt off th
the HTTP/
HTTP/1.1 standard.
t d d

1 xx
Informational
f l Server is
i performing
f i
some further action
and does not yet have a

4 xx
definitive response
Client error
Error was found from
client side

2 xx
Success
The action requested by
the client was

5 xx
successful received
Server error
The server failed to
fulfill a valid request

3 xx
Redirection
Site will be redirected
or URL forwarding
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


• Main reason for redirect URL
• Preparing
p g stuff
• Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
1 xx
Informational Server is performing
1 2
some further action
and does not yet have a
d fi i i response
definitive

Status code Description

100 Allow a client that is sending a request message to determine if server is willing to accept the
continue request.

101
Server will switch protocols to those defined by the response's Upgrade header field immediately
Switching
after the empty line which terminates the 101 response.
Protocols
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


• Main reason for redirect URL
• Preparing
p g stuff
• Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
2 xx
Success
1 2
The action requested by
the client was
successful received

Status code Description

201
New resource being created.
created

202
The request has been accepted for processing.
accepted

203
non- The returned metainformation in the entity-header is not the definitive set as available from the
authoritative origin server.
information

204 The server has fulfilled the request but does not need to return an entity-body, and might want to
no content return updated metainformation.

205 The server has fulfilled the request and the user agent should reset the document view which
reset content caused the request to be sent.

206
The server has fulfilled the partial GET request for the resource.
partial content
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


• Main reason for redirect URL
• Preparing
p g stuff
• Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
3 xx
Redirection
1 2
Site will be redirected
or URL forwarding

Status code Description

300
The requested resource correspond to multiple specific location.
Multiple Choices

301
Moved The requested resource has been assigned to new permanent URI.
Permanently

302 The requested resource resides temporarily under a different URI. This response is only cacheable
Found if indicated by a Cache-Control or Expires header field.

303 The response to the request can be found under a different URI and SHOULD be retrieved using a
S Oth
See Other GET method
th d on that
th t resource.

304 If the client has performed a conditional GET request and access is allowed, but the document has
Not Modified not been modified.

305
The requested resource must be accessed through the proxy given by the location field.
Use Proxy
1 2

Status code Description

306 The 306 status code was used in a previous version of the specification, is no longer used, and the
(Unused) code is reserved.

307 If the 307 status code is received in response to a request other than GET or HEAD, the user agent
Temporary must not automatically redirect the request unless it can be confirmed by the user, since this might
Redirect change the conditions under which the request was issued.
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


• Main reason for redirect URL
• Preparing
p g stuff
• Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
4 xx
Client error
1 2
Error was found from
client side

Status code Description

400
The requested cannot be fulfilled due to bad syntax.
Bad Request

401
It will happen when authentication has failed.
Unauthorized

402
Payment Reserve for future use for digital cash or micro payment.
Required

4 3
403
Th request
The q t was a legal
l l request,
q t butb t the
th server is
i refusing
f i to t respond
d tto it
it.
Forbidden

404
The requested resource could not be found but may be available again in the future.
Not Found

405
A request was made of a resource using a request method not supported by that resource. For example, 
Method Not
using GET on a form which requires data to be presented via POST.
Allowed
1 2

Status code Description

406 The requested resource is only capable of generating content not acceptable according to the
Not Acceptable Accept headers sent in the request.

407
Proxy
It need proxy authentication for accessing the site.
Authentication
Required

408
The server timed out waiting for the request.
Request Timeout

4 9
409
Indicates that the request could not be processed because of conflict in the request.
request
Conflict

410
Indicates that the resource requested is no longer available and will not be available again.
Gone

411
The request did not specify the length of its content.
Length Required

412
Precondition The server does not meet one of the preconditions that the requester put on the request.
Failed

413
Request Entity The request is larger than the server is willing or able to process.
Too Large
1 2

Status code Description

414
Request-URI The URI provided was too long for the server to process.
Too Long

415
Unsupported The request entity has a media type which the server or resource does not support.
Media Type

416
Requested Range The client has asked for a portion of the file, but the server cannot supply that portion.
Not Satisfiable

417
E
Expectation
t ti Th server cannott meett the
The th requirements
i t off the
th EExpectt request-header
t h d fi field.
ld
Failed

418
This request is not expected to be implemented by actual HTTP servers.
p
I'm a teapot
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


• Main reason for redirect URL
• Preparing
p g stuff
• Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
5 xx
Server error
1 2
The server failed to
fulfill a valid request

Status code Description

500
Internal Server A generic error message, given when no more specific message is suitable.
Error

501
Not The server either does not recognize the request method, or it lacks the ability to fulfill the request.
Implemented

502 The server was acting as a gateway or proxy and received an invalid response from the upstream
Bad Gateway server.

503
S i
Service Th server is
The i currently
tl unavailable
il bl (because
(b it is
i overloaded
l d d or d
down ffor maintenance).
i t )
Unavailable

504
The server was acting as a gateway or proxy and did not receive a timely response from the
Gateway
upstream server.
Timeout

505
HTTP Version The server does not support the HTTP protocol version used in the request.
Not Supported
1 2

Status code Description


p

506
Variant Also Transparent content negotiation for the request results in a circular reference.
Negotiates

507
Insufficient Disk is running out of space.
Storage

509
Bandwidth Limit This status code, while used by many servers, is not specified in any RFCs.
Exceeded

510
Further extensions to the request are required for the server to fulfill it.
Not Extended
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


 Main reason for redirect URL
• Preparing
p g stuff
• Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
1 2
Main reason for redirect URL

1. Security
Hide underlying
y g technology gy – index.php
p p
Hide actual path of files – http://www.xxx.com/images/simple?photo=34

2. Good for people


Easy to remember – http://www.xxx.com

3. Good for search engine


Search engine like friendly URL – http://www.xxx.com/contact
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


 Main reason for redirect URL
 Preparing
p g stuff
• Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
1 2
Preparing stuff

Install Apache on your web server and enable “mod_rewrite” engine

Rewrite Engine On
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


 Main reason for redirect URL
 Preparing
p g stuff
 Where we place the rule
• Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
1 2
Where we place the rule

• Apache config file - httpd.conf

• Htaccess file - .htaccess


Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


 Main reason for redirect URL
 Preparing
p g stuff
 Where we place the rule
 Rewrite rule
• Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
1 2
Rewrite rule
To be more understanding for rewrite rule, It’s good to familiar with the syntax and
pattern of rewrite rule.

Pattern Target Flag


RewriteRule ^somefile-([0-9]+)\.htm$ /dir/index.php?id=$1
p p [L]
1 2
Pattern
Pattern has been used for matches the URL path and Regular expression has been used
to detect the requested URI.

Metacharacter

Char Definition

\ Use before any of the following characters to escape or null the meaning or it.
it \\* \.
\ \$ \+ \[ \]

^ Start matching at this point.

$ End point of the match.

. Any character.

[] Starts a class.

| Starts
Sta ts a
alternative
te at ve match
atc tthis|that
s|t at wou
would
d mean
ea match
atc tthiss o
or tthat.
at.

() Starts a back reference point.

? Match 0 or 1 time Quantifier.

+ Match atleast 1 or more times Quantifier.

* Match 0 to infinite times Quantifier.

{} Match minimum to maximum Quantifier {0,3} match up to 3 times.


1 2
Class []

Char Definition

^ Negates the class. [^A-Z]+ means don't match any uppercases.

\ Use before anyy of the following


g characters to escape
p or null the meaning
g or it. [\
[\+]+.
]

- Range for matching [0-9]+ [a-zA-Z]+.


1 2
Target
It can be
b used
d ffor replacing
l i any matched
h d URL.

File-system path

URL path
could be used
as a target.
Absolute URL

- [dash] (no substitution)


1 2
Flag
Flag can modify the behavior of a Rewrite rule.

Char Definition

[R] Redirect
d you can add
dd an =301 or =302 to change
h the
h type.

[F] Forces the URL to be forbidden. 403 header.

[G] Forces the URL to be gone 401 header.

[L] Last rule. (You should use this on all your rules that don't link together)

[N] Next round. Rerun the rules again from the start.

[C] Chains a rewrite rule together with the next rule.


rule

[T] Use T = MIME-type to force the file to be a mime type.

[NS] Use if no sub request is requested.

[NC] Makes the rule case Insensitive.

[QSA] Query String Append use to add to an existing query string.

[NE] Turns of normal escapes that are default in the rewrite rule.

[PT] Pass through to the handler. (together with mod alias)

[S] Skip the next rule S=3 skips the next 3 rules.

[E] E = sets an environmental variable that can be called by other rules.

[P] E = rules are served through a proxy subrequest.


Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


 Main reason for redirect URL
 Preparing
p g stuff
 Where we place the rule
 Rewrite rule
 Example 1 : non-www to www redirection
• Example 2 : normal redirection
• Example 3 : sub domain redirection
1 2
Example 1 : non-www to www redirection
h
http://xxx.com => redirect
d to http://www.xxx.com
h

M h this
Match h URL “h
“http://xxx.com”
//

RewriteEngine On

The pattern captured


RewriteCond %{HTTP_HOST} ^xxx\.com inside the parentheses

RewriteRule ^(.*)$ http://www.xxx.com/$1 [R=301,L]

Pattern inside parentheses is Replace with this URL Redirect with 301 and
capture as variable “$1” make this as the last
Rewrite rule.
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


 Main reason for redirect URL
 Preparing
p g stuff
 Where we place the rule
 Rewrite rule
 Example 1 : non-www to www redirection
 Example 2 : normal redirection
• Example 3 : sub domain redirection
1 2
Example 2 : normal redirection
h
http://xxx.com => redirect
d to http://yyy.com/about
h b

M h this
Match h URL “h
“http://xxx.com”
//

RewriteEngine On

RewriteCond %{HTTP_HOST} ^xxx\.com

RewriteRule ^/(.*)$ http://yyy.com/about [R=301,QSA,L]

Pattern inside parentheses is Replace with this URL Redirect with 301,
301
capture as variable “$1” but it is query append string
not used for this case and make this as the
last rewrite rule.
Topics

1 LEARN ABOUT HTTP STATUS CODE


 Http status code
 1xx Informational
 2xx Success
 3xx Redirection
 4xx Client error
 5xx Server error

2 HOW TO REDIRECT YOUR URL


 Main reason for redirect URL
 Preparing
p g stuff
 Where we place the rule
 Rewrite rule
 Example 1 : non-www to www redirection
 Example 2 : normal redirection
• Example 3 : sub domain redirection
1 2
Example 3 : sub domain redirection
h
http://xxx.com/blog/
bl => redirect
d to http://blog.xxx.com/
h bl

RewriteEngine On

RewriteRule ^/blog/?(.*)$ http://blog.xxx.com/$1 [P,NC,L]

M h “/bl
Match “/blog/”
/” pattern R l
Replace with
i h this
hi URL Rules
R l are served d
through proxy, case
insensitive and make
this as the last Rewrite
rule.
References
http://www.webforgers.net/mod-rewrite/mod-rewrite-syntax.php
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
http://en.wikipedia.org/wiki/URL_redirection#Manual_redirect
Thank yyou for watching
g
my presentation

Created by
panu ausavasereelert
blog: http://panu.in.th
email: panu@panu
panu@panu.in.th
in th
twitter: @panuinth

S-ar putea să vă placă și