Boyle Owen wrote:
>> -----Original Message-----
>> From: Norman Khine [mailto:[EMAIL PROTECTED]
>> Sent: Wednesday, September 06, 2006 9:23 AM
>> To: [email protected]
>> Subject: [EMAIL PROTECTED] Dynamic RewriteRule based on the URL
>>
>> Hello,
>> Is it possible to create an Apache Rewrite rule so that the
>> depending on
>> the sub-domain the server receives it is then re-written to a
>> different
>> folder, for example, I have this working but want to reduce it to just
>> one rule:
>>
>> <VirtualHost *:80>
>> ServerName folder_A.domain.tld
>> RewriteEngine On
>> RewriteRule ^/(.*) http://localhost:9080/folder_A/$1 [P]
>> RequestHeader set X-Base-Path folder_A
>> ErrorLog /var/log/apache2/folder_A-error_log
>> CustomLog /var/log/apache2/folder_A-access_log common
>> </VirtualHost>
>>
>> <VirtualHost *:80>
>> ServerName folder_B.domain.tld
>> RewriteEngine On
>> RewriteRule ^/(.*) http://localhost:9080/folder_B/$1 [P]
>> RequestHeader set X-Base-Path folder_B
>> ErrorLog /var/log/apache2/folder_B-error_log
>> CustomLog /var/log/apache2/folder_B-access_log common
>> </VirtualHost>
>>
>
> Take a look at RewriteCond - this allows you to make conditional
> redirects and so generate an if-else construct, eg:
>
> RewriteCond domainA
> RewriteRule to folder A
> RewriteCond domainB
> RewriteRule to folder B
>
> Of course, the rewrite directives then go in the main body of the config
> so they apply to all VHs. BTW, not sure if this is less or more
> work/effort than your original solution.. So I guess you're really
> looking for:
>
> RewriteRule to folder(domain)
>
> where the destination depends on the value of "domain"... I can't think
> of an easy way to do this - plough through the examples in
> http://httpd.apache.org/docs/2.2/misc/rewriteguide.html.
>
> Rgds,
> Owen Boyle
> Disclaimer: Any disclaimer attached to this message may be ignored.
>
>
>
>> etc...
>>
>>
>> So is there a nice way to reduce this to only one rule where if a
>> request is sent to folder_A.domain.tld the RewriteRule,
>> RequestHandler,
>> ErrorLog, CustomLog entries are changed accordingly?
>>
>> Perhaps something like in the line of %{SERVER_NAME}:
>>
>> <VirtualHost *:80>
>> ServerName %{FOLDER_NAME}.domain.tld
>> RewriteEngine On
>> RewriteRule ^/(.*) http://localhost:9080/%{FOLDER_NAME}/$1 [P]
>> RequestHeader set X-Base-Path %{FOLDER_NAME}
>> ErrorLog /var/log/apache2/%{FOLDER_NAME}-error_log
>> CustomLog /var/log/apache2/%{FOLDER_NAME}-access_log common
>> </VirtualHost>
>>
>>
>> Would this work and how would you set the %{FOLDER_NAME} if
>> it does or is there a different approach?
>>
>> Many thanks
>>
>>
>> Norman
>>
>>
>> ---------------------------------------------------------------------
>> 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]
>>
>>
>
>
> This message is for the named person's use only. It may contain confidential,
> proprietary or legally privileged information. No confidentiality or
> privilege is waived or lost by any mistransmission. If you receive this
> message in error, please notify the sender urgently and then immediately
> delete the message and any copies of it from your system. Please also
> immediately destroy any hardcopies of the message. You must not, directly or
> indirectly, use, disclose, distribute, print, or copy any part of this
> message if you are not the intended recipient. The sender's company reserves
> the right to monitor all e-mail communications through their networks. Any
> views expressed in this message are those of the individual sender, except
> where the message states otherwise and the sender is authorised to state them
> to be the views of the sender's company.
>
> ---------------------------------------------------------------------
> 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]
>
>
>
Thanks for your reply, I was looking at the
http://httpd.apache.org/docs/2.2/misc/rewriteguide.html documentation
and perhaps something like this may work...
RewriteEngine on
RewriteCond %{*HTTP_HOST*} *[^.]+*\.host\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule *([^.]+)*\.host\.com(.*) http://localhost:9080/*$1*$2 [P]
RequestHeader set X-Base-Path %{*HTTP_HOST*}
#Not sure if the logs entry is correct
ErrorLog /var/log/apache2/%{*HTTP_HOST*}-error_log
CustomLog /var/log/apache2/%{*HTTP_HOST*}-access_log common
Cheers
Norman
---------------------------------------------------------------------
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]