> -----Original Message----- > From: Norman Khine [mailto:norman@xxxxxxxxx] > Sent: Wednesday, September 06, 2006 9:23 AM > To: users@xxxxxxxxxxxxxxxx > Subject: [users@httpd] 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: users-unsubscribe@xxxxxxxxxxxxxxxx > " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx > For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx > 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: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx