How to redirect URL with Apache web server
Upcoming SlideShare
Loading in...5
×
 

How to redirect URL with Apache web server

on

  • 6,893 views

After hours of googling “URL redirection with Apache”, I found lots of resources but it is hard to understand and too much complicated information. To make people clearly understand, this ...

After hours of googling “URL redirection with Apache”, I found lots of resources but it is hard to understand and too much complicated information. To make people clearly understand, this presentation provides clear explanation on the difficult things and good examples. It will give you a basic knowledge that you should know before digging deep into the details such as “http status code” and “rewrite rule”. There are a few examples to guide you how to do. I really hope it will be useful not only for the beginners, but also for the more advanced developers. Please let me know if you have any comments or suggestions.

Statistics

Views

Total Views
6,893
Views on SlideShare
6,776
Embed Views
117

Actions

Likes
1
Downloads
115
Comments
0

2 Embeds 117

http://panu.in.th 113
http://www.linkedin.com 4

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    How to redirect URL with Apache web server How to redirect URL with Apache web server Presentation Transcript

    • How to redirect URL with Apache web server1 xx 2 xx 3 xx 4 xx 5 xx Informational Success Redirection Client error Server error
    • 1 2Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL • Main reason for redirect URL • Preparing stuff p g • 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 codeIt i response status code which i part of th HTTP/ standard. is t t d hi h is t f the HTTP/1.1 t d d 1 xx Informational f l Server i performing is 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
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL • Main reason for redirect URL • Preparing stuff p g • 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 definitive d fi i i response 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 responses Upgrade header field immediately Switching after the empty line which terminates the 101 response. Protocols
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL • Main reason for redirect URL • Preparing stuff p g • 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 theauthoritative 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 whichreset content caused the request to be sent. 206 The server has fulfilled the partial GET request for the resource.partial content
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL • Main reason for redirect URL • Preparing stuff p g • 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 See Other S Oth GET method on that resource. th d th t 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 2Status 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 agentTemporary 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.
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL • Main reason for redirect URL • Preparing stuff p g • 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 The q t Th request was a legal request, but the server is refusing to respond t it l l q t b t th i f i t d to 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 theNot 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 416Requested Range The client has asked for a portion of the file, but the server cannot supply that portion. Not Satisfiable 417 Expectation E t ti The Th server cannot meet the requirements of the E t t th i t f th Expect request-header fi ld t t h d field. Failed 418 This request is not expected to be implemented by actual HTTP servers. p Im a teapot
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL • Main reason for redirect URL • Preparing stuff p g • 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 500Internal 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 Service S i The Th server is currently unavailable (because it is overloaded or d i tl il bl (b i l d d down f maintenance). for 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 505HTTP 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 509Bandwidth 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
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL  Main reason for redirect URL • Preparing stuff p g • Where we place the rule • Rewrite rule • Example 1 : non-www to www redirection • Example 2 : normal redirection • Example 3 : sub domain redirection
    • 1 2Main reason for redirect URL 1. Security Hide underlying technology – index.php y g gy 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
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL  Main reason for redirect URL  Preparing stuff p g • Where we place the rule • Rewrite rule • Example 1 : non-www to www redirection • Example 2 : normal redirection • Example 3 : sub domain redirection
    • 1 2Preparing stuffInstall Apache on your web server and enable “mod_rewrite” engineRewrite Engine On
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL  Main reason for redirect URL  Preparing stuff p g  Where we place the rule • Rewrite rule • Example 1 : non-www to www redirection • Example 2 : normal redirection • Example 3 : sub domain redirection
    • 1 2Where we place the rule • Apache config file - httpd.conf • Htaccess file - .htaccess
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL  Main reason for redirect URL  Preparing stuff p g  Where we place the rule  Rewrite rule • Example 1 : non-www to www redirection • Example 2 : normal redirection • Example 3 : sub domain redirection
    • 1 2Rewrite ruleTo be more understanding for rewrite rule, It’s good to familiar with the syntax andpattern of rewrite rule. Pattern Target FlagRewriteRule ^somefile-([0-9]+).htm$ /dir/index.php?id=$1 p p [L]
    • 1 2PatternPattern has been used for matches the URL path and Regular expression has been usedto 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. | Sta ts alternative atc t s|t at wou d ea Starts a te at ve match this|that would mean match t s o t at. atc this or that. () 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 2Class [] Char Definition ^ Negates the class. [^A-Z]+ means dont match any uppercases. Use before any of the following characters to escape or null the meaning or it. [ ] y g p g [+]+. - Range for matching [0-9]+ [a-zA-Z]+.
    • 1 2TargetIt can b used f replacing any matched URL. be d for l i h d File-system path URL path could be used as a target. Absolute URL - [dash] (no substitution)
    • 1 2FlagFlag can modify the behavior of a Rewrite rule. Char Definition [R] Redirect you can add an =301 or =302 to change the type. d dd h h [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 dont 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.
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL  Main reason for redirect URL  Preparing stuff p g  Where we place the rule  Rewrite rule  Example 1 : non-www to www redirection • Example 2 : normal redirection • Example 3 : sub domain redirection
    • 1 2Example 1 : non-www to www redirection http://xxx.com => redirect to h h d http://www.xxx.com Match h M h this 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 andcapture as variable “$1” make this as the last Rewrite rule.
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL  Main reason for redirect URL  Preparing stuff p g  Where we place the rule  Rewrite rule  Example 1 : non-www to www redirection  Example 2 : normal redirection • Example 3 : sub domain redirection
    • 1 2Example 2 : normal redirection http://xxx.com => redirect to h h d http://yyy.com/about b Match h M h this 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, 301capture as variable “$1” but it is query append stringnot used for this case and make this as the last rewrite rule.
    • Topics1 LEARN ABOUT HTTP STATUS CODE  Http status code  1xx Informational  2xx Success  3xx Redirection  4xx Client error  5xx Server error2 HOW TO REDIRECT YOUR URL  Main reason for redirect URL  Preparing stuff p g  Where we place the rule  Rewrite rule  Example 1 : non-www to www redirection  Example 2 : normal redirection • Example 3 : sub domain redirection
    • 1 2Example 3 : sub domain redirectionhttp://xxx.com/blog/ => redirect to hh bl d http://blog.xxx.com/ blRewriteEngine OnRewriteRule ^/blog/?(.*)$ http://blog.xxx.com/$1 [P,NC,L] Match “/blog/” M h “/bl /” pattern Replace with this URL R l i h hi Rules R l are served d through proxy, case insensitive and make this as the last Rewrite rule.
    • Referenceshttp://www.webforgers.net/mod-rewrite/mod-rewrite-syntax.phphttp://httpd.apache.org/docs/1.3/mod/mod_rewrite.htmlhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlhttp://en.wikipedia.org/wiki/List_of_HTTP_status_codeshttp://en.wikipedia.org/wiki/URL_redirection#Manual_redirect
    • Thank you for watching y gmy presentation Created by panu ausavasereelert blog: http://panu.in.th email: panu@panu in th panu@panu.in.th twitter: @panuinth