Apache Web Server Configuration for Web Site Redirection

上一篇 / 下一篇  2008-02-25 11:03:24

List of methods used to redirect a web site using Apache:

Web site forwarding and redirection methods:

  1. One can forward a web page URL or home page using the following web page with the "Refresh" directive:
    <META. HTTP-EQUIV="Refresh" Content="0; URL=http://www.company.com/dir1/">
    This commands the browser to refresh the page with the new specified URL. This forwards a single page only and not the entire domain. It can forward the default home page for the domain giving the appearance of forwarding the domain..

    or:

    <html>
    <head>
    <META. HTTP-EQUIV="Refresh" Content="3; URL=http://www.company.com/dir1/">
    </head>
    <body>
    This page will forward to http://www.company.com/dir1/ in three seconds.
    <p>
    Please update your links.
    </body>
    </html>

  2. Use a CGI script. to forward a home page: (mod_cgi)
    File:httpd.conf
    ScriptAlias / /var/www/cgi-bin/redirect-script/
    File:/var/www/cgi-bin/redirect-script
    #!/usr/bin/perl

    print "Status: 301 Moved\r\n" .
    "Location: http://www.new-domain.com/\r\n" .
    "\r\n";

  3. Use Apache module (mod_rewrite)
    File:httpd.conf
    RewriteEngine On
    RewriteRule /.* http://www.new-domain.com/ [R]
    Forwards all references in entire domain.

  4. Use Apache module (mod_alias)
    File:httpd.conf
    • Redirect Domain:
      Redirect / http://www.new-domain.com/
      or
      Redirect permanent / http://www.new-domain.com/
    • Redirect Page:
      Redirect /web-page.htmlhttp://www.new-domain.com/destination-web-page.html
    Note:
    • Redirect directives take precedence over Alias and ScriptAlias directives.
    • Other "Redirect" options include:temp(error 302) default - temporary redirect status,seeother(error 303) resource has been replaced andgone(error 410) resource has been permanently removed.

    Examplehttpd.confwith virtual hosts for multiple domains which all redirect:

    <VirtualHostXXX.XXX.XXX.XXX>
    ServerName directtolinux.com
    ServerAlias www.directtolinux.com
    ServerAlias direct-to-linux.com
    ServerAlias www.direct-to-linux.com
    ServerAlias digitalpenguins.com
    ServerAlias www.digitalpenguins.com
    Redirect permanent / http://www.yolinux.com/
    </VirtualHost>

  5. Apache 301 redirect using the.htaccessfile:

    If one wants to permanently forward an entire web site to a new URL or forward a single page permanently and have the search engines update their database, one should use a 301 redirect. This may redirect to a new server or to itself but to a different domain. This tutorial shows how. This method is a variation of using themod_aliasredirection shown above except that it allows the customer to redirect themselves by providing a.htaccessfile themselves.

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^yolinux.com
    RewriteRule ^(.*)$ http://www.yolinux.com/$1 [R=permanent,L]
    This example forwardshttp://yolinux.comtohttp://www.yolinux.com/to unify your site to a single URL. See YoLinux.comcomments on why you may want to unify your web site to a single URL. This can also simplify your web logs if they can not distinguish between the two.


(Method 5) Apache configuration for redirect using httpd.conf and .htaccess:

This configures Apache to command the web browser to redirect by performing a GET from the "redirected" web site the user is being forwarded to.

File:/etc/httpd/conf/httpd.conf(older systems used access.conf)

Default:This disables the processing of.htaccessfiles for the system.

<Directory />
AllowOverride None
</Directory>

or for a specified directory:

<Directory/home/domain/public_html>
AllowOverride None
</Directory>

Specify directory containing site or page to be redirected:

<Directory /root-directory-of-web-site-to-be-redirected>
AllowOverride All
</Directory>

AllowOverride parameters: AuthConfig FileInfo Indexes Limits Options


File:.htaccessCreate a file/home/domain/public_html/.htaccessin that directory of the domain to be forwarded that looks something like this:
  • Redirect entire domain:
    Redirect 301 /  http://www.new-domain.com/
    Note: The use of the "/" at the end of the redirected domain. This is necessary so thathttp://www.old-domain.com/page1.htmlwill be redirected tohttp://www.new-domain.com/page1.html.
    OR
  • Redirect specified pages:
    Redirect 301 /old-page-1.html  http://www.newdomain.com/new-page-1.html
    Redirect 301 /old-page-2.html http://www.newdomain.com/new-page-2.html

You may use the following directives:

  • 301: permanent
  • 302: temp
  • 303: seeother
  • 410: gone
For example:
Redirect permanent /  http://www.newdomain.com/

If an incorrect directive is used in thehttpd.confor.htaccessfile it will result in a server error. Check your log files:/var/log/httpd/error_log.


HTTP 1.1 Redirect codes:

HTTP CodeStatusDescription
301permanentThe resource has permanently moved
302tempThe resource has temporarily moved
303seeotherThe resource has been replaced and refer to new resource
305UseProxyUse proxy to access site
307TempThe resource has temporarily moved
410TegoneThe resource has permanently removed

SeeRFC 2616 HTTP/1.1 protocol- Chapter 10.3


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-09-09  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 1339
  • 日志数: 34
  • 图片数: 1
  • 建立时间: 2007-12-06
  • 更新时间: 2008-03-19

RSS订阅

Open Toolbar