I am afraid that mod_rewrite will process the request *before* mod_vhost_alias.
Therefore, in order to achieve what you want, I think you will need to abandon
mod_vhost_alias and rely solely on mod_rewrite.
For the user directories, maybe:
RewriteMap lowercase int:tolower
RewriteCond %{HTTP_HOST} !^$
RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.*)\.([^.]+)\.([^.]+)$
RewriteCond /exports/home/%2.%3/users/domain_$1 -d
RewriteRule ^/([^\/]+)(.*)$ /exports/home/%2.%3/users/domain_$1$2 [L]
In the last RewriteCond we test whether a directory exists under
/exports/home/domain.tld/ named the same as the first component of the
requested URL path.
I think the following should be equivalent to "VirtualDocumentRoot
/exports/home/%-2.0.%-1/virtualdomains/%0":
RewriteCond %{HTTP_HOST} !^$
RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.*)\.([^.]+)\.([^.]+)$
RewriteRule ^(.*)$ /exports/home/%2.%3/virtualdomains/%1.%2.%3$1
Wrt the ScriptAlias, I thinks you may resolve it using a combination of
DirectoryMatch, add-handler and Options.
For the user directories, you may want to disable mod_userdir and incorporate
the ~ syntax in the above rewrite rule.
Try the above rules, set "RewriteLogLevel 3", set the RewriteLog to an
appropriate value and check out the resulting path names.
-ascs
________________________________
From: Gary W. Smith [mailto:[EMAIL PROTECTED]
Sent: Thursday, April 20, 2006 8:41 PM
To: [email protected]
Subject: [EMAIL PROTECTED] rewrite and virtualdocumentroot question
We are running the following in the httpd.conf file. This works well for our
virtual domain hosting.
VirtualDocumentRoot /exports/home/%-2.0.%-1/virtualdomains/%0
VirtualScriptAlias /exports/home/%-2.0.%-1/virtualdomains/%0/cgi-bin
For the users we have a prefix as part of their username. For example, the
domain domain.tld might have the following prefix domain_ so the user accounts
would look like domain_bob, domain_john, etc.
We have a need to strip the this prefix off for a particular domain that we are
hosting and expose their home directory. The users home directories are always
under a partitular path:
/exports/home/domain.tld/users/prefix_username
What we would like to do is have all traffic for /bob to go to the folder
/exports/home/domain.tld/users/domain_bob. The second part of this is that we
only want this to happen for domain.tld, not domain2.tld or domain3.tld.
Is this possible? If so, how would I approach this?
I figure the first part of the equation is getting /domain_bob to map to
/exports/home/domain.tld/users/domain_bob but I don't know how to do this when
we are running VirtualDocumentRoot.
It should also be noted that there is no content on this particular virtual
host. It was specifically create for the purposes of putting home directories
on the network.
Any help would be greatly appreciated.
Gary Smith
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
" from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]