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:
- 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>
|
- 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";
|
- Use Apache module (mod_rewrite)
- File:httpd.conf
RewriteEngine On RewriteRule /.* http://www.new-domain.com/ [R]
|
Forwards all references in entire domain.
- Use Apache module (mod_alias)
- File:httpd.conf
- Redirect Domain:
Redirect / http://www.new-domain.com/
|
orRedirect 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> |
- 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 Code | Status | Description |
|---|
| 301 | permanent | The resource has permanently moved |
| 302 | temp | The resource has temporarily moved |
| 303 | seeother | The resource has been replaced and refer to new resource |
| 305 | UseProxy | Use proxy to access site |
| 307 | Temp | The resource has temporarily moved |
| 410 | Tegone | The resource has permanently removed |
SeeRFC 2616 HTTP/1.1 protocol- Chapter 10.3
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: