How to trace Apache 301 Moved Permanently?

I have one virtual host on my machine, which I am accessing localy. I am running apache2 under windows 7.

When accessing this host, I see in Fiddler, that server redirects browser to different remote site with response

301 Moved Permanently

But I am absolutely can't find where is it configured. I search all .htaccess files for the URL of target site, all files in the given virtual host for this URL, all Apache directory...

How to trace what causes Apache to do this redirection?


It's not necessarily Apache's configuration that's doing this - is Apache handing the request off to a dynamic content generator?

Look for two things in your Apache config; Redirect, and RewriteRule directives that have an R flag. If those aren't in place, then Apache isn't doing the redirect (with the exception of /directoryname redirecting to /directoryname/, but that doesn't sound like the case here), and you'll need to look at the dynamic code that Apache's handing the request to.


Thanks for the above answer and it points me to the right direction. In my case, the 301 redirect is caused by a rewrite rule for the whole site.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^voicent.com
RewriteRule ^/(.*)$ http://www.voicent.com/$1 [L,R=301]

The above rule forces the use of canonical host name. It makes every url starts with www.domain.com, instead of domain.com. You can further verify this in the apache access log.