You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Timothy Stone <ci...@petmystone.com> on 2003/09/10 19:18:55 UTC
Re: [users@httpd] In Rewrite Loop -- please help [LOGS]
Timothy Stone wrote:
> Timothy Stone wrote:
>
>> List,
>>
>> I'm running Apache 2.0.46 on Windows 2000 SP 2.
>>
>> I have five domains, all variations on a theme (all examples):
>>
>> www.mycity.com
>> www.mycity.org
>> www.mycity.net
>> www.mycityevents.com
>> www.mycitystate.gov
>>
>> All five domains are entered in DNS identically for round robin load
>> sharing.
>>
>> Currently, www.mycity.com, acts as the "primary" domain for all of
>> these domains. So a client requesting .org|.net|.gov are immediately
>> redirected (R=permanent) to "dot-com" via a RewriteRule (conf
>> follows) in a virtual host.
>>
>> Now, it has been decided that the "dot-gov" address will act as the
>> primary domain. It might seem as simple as editing the ServerName,
>> ServerAlias and appropiate RewriteRule and RewriteConds, but alas, no.
>> It sends me into a loop, which can be seen in the RewriteLog; it kills
>> the client but, fortunately, Apache gracefully handles it (a recent
>> fix in the 2.0.4x series I believe).
>>
>> I edit the conf (shown below in "Broken, Loopy Conf") changing very
>> little, it nearly amounts to:
>>
>> s/city\.com/citystate\.gov/g
>>
>> Both working and broken httpd.conf follow, edited of course. Any
>> suggestions on what could be causing this loop would be very helpful.
>> I'm too close at this point to see anything wrong I think.
>>
>> ***** WORKING CONF ****
>> # Section 1: Global Configuration
>>
>> Listen 80
>>
>> # Section 2: Main Server Configuration
>>
>> ...
>> # If this is not set to valid DNS name for your host, server-generated
>> # redirections will not work. See also the UseCanonicalName directive.
>> ...
>> ServerName www.mycity.com:80
>>
>> # UseCanonicalName: Determines how Apache constructs self-referencing
>> # URLs and the SERVER_NAME and SERVER_PORT variables.
>> # When set "Off", Apache will use the Hostname and Port supplied
>> # by the client. When set "On", Apache will use the value of the
>> # ServerName directive.
>> #
>> UseCanonicalName Off
>>
>> ### Section 3: Virtual Hosts
>>
>> NameVirtualHost *
>>
>> # main vhost
>> <VirtualHost *>
>> ServerName www.mycity.com
>> ServerAlias mycity.com *.mycity.com
>>
>> DocumentRoot "C:/usr/local/apache2-01/htdocs/mycity"
>> RewriteEngine on
>> RewriteCond %{HTTP_HOST} !^www.mycity.com [nocase] [OR]
>> #For internal use, prevents images from being blocked
>> RewriteCond %{HTTP_HOST} !^10\.*
>> RewriteCond %{HTTP_HOST} !^$
>> RewriteRule ^/(.*) http://www.mycity.com/$1 [R=permanent]
>> RewriteLog logs/rewrite.log
>> RewriteLogLevel 0
>> </VirtualHost>
>>
>> <VirtualHost *>
>> ServerName www.mycityevents.com
>> ServerAlias mycityevents.com *.mycityevents.com
>> DocumentRoot "C:/usr/local/apache2-01/htdocs/mycity"
>> RewriteEngine on
>> RewriteCond %{HTTP_HOST} ^www.mycityevents.com [nocase]
>> RewriteRule ^/(.*) http://www.mycityevents.com/rec/ [R=permanent]
>> RewriteLog logs/rewrite_rec.log
>> RewriteLogLevel 9
>> </VirtualHost>
>>
>>
>> ***** BROKEN, LOOPY CONF ****
>>
>> * recall, i'm simply trying to change the rewrite rule, but I'm also
>> changing the server name because this is now the "primary" domain.
>>
>> ### Section 1: Global Configuration
>>
>> Listen 80
>>
>> ### Section 2: Main Server Configuration
>>
>> ...
>> # If this is not set to valid DNS name for your host, server-generated
>> # redirections will not work. See also the UseCanonicalName directive.
>> ...
>> ServerName www.mycitystate.gov:80
>>
>> # UseCanonicalName: Determines how Apache constructs self-referencing
>> # URLs and the SERVER_NAME and SERVER_PORT variables.
>> # When set "Off", Apache will use the Hostname and Port supplied
>> # by the client. When set "On", Apache will use the value of the
>> # ServerName directive.
>> #
>> UseCanonicalName Off
>>
>> ### Section 3: Virtual Hosts
>>
>> NameVirtualHost *
>>
>> <VirtualHost *>
>> ServerName www.mycitystate.gov
>> ServerAlias mycitystate.gov *.mycitystate.gov
>>
>> DocumentRoot "C:/usr/local/apache2-01/htdocs/mycity"
>> RewriteEngine on
>> RewriteCond %{HTTP_HOST} !^www.mycitystate.gov [nocase] [OR]
>> #For internal use, prevents images from being blocked
>> RewriteCond %{HTTP_HOST} !^10\.*
>> RewriteCond %{HTTP_HOST} !^$
>> RewriteRule ^/(.*) http://www.mycitystate.gov/$1 [R=permanent]
>> RewriteLog logs/rewrite.log
>> RewriteLogLevel 0
>> </VirtualHost>
>>
>> <VirtualHost *>
>> ServerName www.mycityevents.com
>> ServerAlias mycityevents.com *.mycityevents.com
>> DocumentRoot "C:/usr/local/apache2-01/htdocs/mycity"
>> RewriteEngine on
>> RewriteCond %{HTTP_HOST} ^www.mycityevents.com [nocase]
>> RewriteRule ^/(.*) http://www.mycityevents.gov/rec/ [R=permanent]
>> RewriteLog logs/rewrite_rec.log
>> RewriteLogLevel 0
>> </VirtualHost>
>
>
> List,
>
> I think I'm onto the problem. I took a look at the host itself and found
> numerous hung processes. Restarting the box (par for the Windoze
> environment) may have cleared up the problem. I'm testing the server
> now. Whew...RewriteLogLevel 6 is a lot of stuff. In exght minutes it was
> over 147M; either I have more traffic on these boxes then I realized, or
> something hiccupped in Windoze. I'd consider the latter before the former.
>
> One note, and hindsight proves me wrong for doing this, is the confs
> shown are *not exactly* what was on the server, but a cleaned up
> version. I had two vhosts with the different states commented out. My bad.
>
> Any followup would continue to be appreciated.
>
> Tim
List,
Could this be a client problem? Attached are two logs matching the event
with the access and the rewrite. I seem to be having intermmitent success.
Rewrite is at "9" for the most verbose.
I removed IPs and domains to protect the innocent.
Thanks in advance.
Tim