Jump to content

How to use mass virtual hosting using rewrite rules

+ 1
  Rich Bowen's Photo
Posted Sep 01 2009 08:48 AM

Although there is a module—mod_vhost_alias—that is explicitly for the purpose of supporting large numbers of virtual hosts, it is very limiting and requires that every virtual host be configured exactly the same way. If you want to support a large number of vhosts, configured dynamically, but at the same time, you want to avoid mod_vhost_alias, use directives from mod_rewrite to map to a directory based on the hostname:

RewriteEngine on

RewriteCond   "%{HTTP_HOST}"     "^(www\.)?([^.]+)\.com"

RewriteRule   "^(.*)$"           "/home/%2$1"

mod_vhost_alias is useful, but it is best for settings where each virtual host is identical in every way but the hostname and document tree. Using mod_vhost_alias precludes the use of other URL-mapping modules, such as mod_userdir, mod_rewrite, and mod_alias, and it can be very restrictive. Using mod_rewrite is less efficient, but it is more flexible.

For example, when using mod_vhost_alias, you must do all of your hosts with mod_vhost_alias; with this alternate approach, you can do some of your hosts using the rewrite rules and others using conventional virtual host configuration techniques.

The directives in the Solution map requests for www.something.com (or without the www) to the directory /home/something.

Cover of Apache Cookbook
Learn more about this topic from Apache Cookbook, 2nd Edition. 

The new edition of the Apache Cookbook offers you updated solutions to the problems you're likely to encounter with Apache. Thoroughly updated for Apache versions 2.0 and 2.2, this book includes more than 200 recipes ranging from simple tasks, such installing the server on Red Hat Linux or Windows, to more complex tasks, such as setting up name-based virtual hosts or securing and managing your proxy server.

Learn More Read Now on Safari


Tags:
0 Subscribe


0 Replies