?
Solved

Subdomain Logging on wildcard ServerAlias in VirtualHost

Posted on 2004-08-03
4
Medium Priority
?
1,433 Views
Last Modified: 2009-06-26
I have a service that offers members their own unique subdomain - ie. http://member_name.mydomain.com

Although each members web page is customized based on the unique member_name they all point to the same directory - ie. bob.mydomain.com and steve.mydomain.com all point to the same directory.

Here is how my VirtualHost is setup for this domain:

<VirtualHost XXX.XXX.XXX.X:16080>
     ServerName mydomain.com
     ServerAlias *.mydomain.com
     ServerAdmin email_addy@mydomain.com
     DocumentRoot "/Library/WebServer/Documents/mydomain.com"
     DirectoryIndex "index.html" "index.lasso" "index.php"
     CustomLog "/var/log/httpd/access_log" "%v %{PC-Remote-Addr}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
     ErrorLog "/var/log/httpd/error_log"
     LogLevel warn
</VirtualHost>

Everything is working fine on the serve side however my problem lies in how I can seperate up logging for each individual member.

With this current setup all requests are being logged with %v set to mydomain.com and not member_name.mydomain.com

I need to figure out a way to log the subdomain so I can then split up the log file to offer each of my members individual statistics.

Also I have many other VirtualHosts set up on this server so using a global mod_vhost_alias with VirtualDocumentRoot is not an option.
0
Comment
Question by:nextkid
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 51

Expert Comment

by:ahoffmann
ID: 11713970
you need to use mod_setenv to set a (internal) variable containing the hostname, then use it in the LogFormat/Custom_Log string, something like (to be improved inmany ways):

SetenvIf HTTP_HOST membername=%{HTTP_HOST}
CustomLog "/var/log/httpd/access_log" "%{membername}e ...."
0
 

Author Comment

by:nextkid
ID: 11913877
I seem to have fixed this by simply changing the lowercase v in the referrer to an uppercase V. Is this correct behavior? What is the technical difference between the two?
0
 
LVL 51

Accepted Solution

by:
ahoffmann earned 1500 total points
ID: 11984038
stolen from http://httpd.apache.org/docs/mod/mod_log_config.html#formats

%...v:          The canonical ServerName of the server serving the request.
%...V:          The server name according to the UseCanonicalName setting.
0

Featured Post

Building an interactive eFuture classroom

Watch and learn how ATEN provided a total control system solution including seamless switching matrix switch, HDBaseT extenders, PDU, lighting control to build an interactive eFuture classroom.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction As you’re probably aware the HTTP protocol offers basic / weak authentication, which in combination with the relevant configuration on your web server, provides the ability to password protect all or part of your host.  If you were not…
In Solr 4.0 it is possible to atomically (or partially) update individual fields in a document. This article will show the operations possible for atomic updating as well as setting up your Solr instance to be able to perform the actions. One major …
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses
Course of the Month7 days, 21 hours left to enroll

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question