#
Rewrite a request on Apache Server
Configure an Apache server to rewrite a request. My server is hosted on Linux (CentOS, RHL, OEL).
A rewrite engine
is a software component that performs rewriting on Uniform Resource Locators,
modifying their appearance. This modification is called URL rewriting. It is a way of implementing URL
mapping or routing within a web application. The engine is typically a component of a web server or web
application framework. Rewritten URLs (sometimes known as short, pretty or fancy URLs, search engine
friendly - SEF URLs, or slugs) are used to provide shorter and more relevant-looking links to web pages.
The technique adds a layer of abstraction between the files used to generate a web page and the URL
that is presented to the outside world.
The Apache module mod_rewrite
is a killer one, i.e. it is a really sophisticated module which
provides a powerful way to do URL manipulations. With it you can do nearly all types of URL manipulations
you ever dreamed about. The price you have to pay is to accept complexity, because mod_rewrite's
major drawback is that it is not easy to understand and use for the beginner. And even Apache experts
sometimes discover new aspects where mod_rewrite can help. In other words: With mod_rewrite you
either shoot yourself in the foot the first time and never use it again or love it for the rest of
your life because of its power. This paper tries to give you a few initial success events to avoid
the first case by presenting already invented solutions to you.
The mod_rewrite module uses a rule-based rewriting engine, based on a PCRE regular-expression parser,
to rewrite requested URLs on the fly. By default, mod_rewrite maps a URL to a filesystem path.
However, it can also be used to redirect one URL to another URL, or to invoke an internal
proxy fetch. mod_rewrite provides a flexible and powerful way to manipulate URLs using an unlimited
number of rules. Each rule can have an unlimited number of attached rule conditions, to allow you
to rewrite URL based on server variables, environment variables, HTTP headers, or time stamps.
mod_rewrite
operates on the full URL path, including the path-info section.
A rewrite rule can be invoked in httpd.conf or in .htaccess. The path generated by a rewrite
rule can include a query string, or can lead to internal sub-processing, external request redirection,
or internal proxy throughput.
In order to rewrite a URL, you have to:
- uncomment the following line from httpd.conf:
#LoadModule rewrite_module modules/mod_rewrite.so
- have the following line in the httpd.conf:
RewriteEngine On
- Add the rewrite rule to the httpd.conf:
RewriteRule ^(.*) http://192.168.10.122:7001%{REQUEST_URI}
More information about the Rewrite Rule Flags you can have here.