Apache(아파치)를 사용해 redirect(리다이렉트) 하는 방법 7

by 조쉬 posted Feb 27, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄


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";
                        
    or:
    #!/usr/bin/perl -w
    use strict;
    use CGI qw/:standard/;
    print redirect('http://www.new-domain.com');
                        

  3. Use a PHP script to redirect:
    <?php
    header("Location: http://www.new-domain.com/");
    ?>
                        
  4. Use a Javascript to redirect:
    <html>
    <head>
    <script language="Javascript" type="text/javascript">
    <!-- Hide script
    //<![CDATA[
    window.location.href="http://www.new-domain.com/"	    
    //]]> End script hiding -->
    </script>
    </head>
    </html>
                        
  5. Use Apache module (mod_rewrite)
    File: httpd.conf
    RewriteEngine On
    RewriteRule /.* http://www.new-domain.com/ [R]
    Forwards all references in entire domain.

  6. 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.html http://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 and gone (error 410) resource has been permanently removed.
    Example httpd.conf with virtual hosts for multiple domains which all redirect:
    <VirtualHost XXX.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>
                            


  7. Apache 301 redirect using the .htaccess file:
    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 the mod_alias redirection shown above except that it allows the customer to redirect themselves by providing a .htaccess file themselves.
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^yolinux.com
    RewriteRule ^(.*)$ http://www.yolinux.com/$1 [R=permanent,L]
    This example forwards http://yolinux.com to http://www.yolinux.com/ to unify your site to a single URL. This can also simplify your web logs if they can not distinguish between the two