Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I visit all is well. When I visit (without the www) I get redirected to which gives a 404 error.

/home/admin/domains/ is my DocumentRoot

I believe this problem occurs without rewriting happening... but I could be wrong. I think it my be something with my Apache config. Hopefully someone will spot a common mistake.

My VirtualHost setting was generated by DirectAdmin and is as follows:

<VirtualHost >
    DocumentRoot /home/admin/domains/
    ScriptAlias /cgi-bin/ /home/admin/domains/
    UseCanonicalName OFF
    <IfModule !mod_ruid2.c>
            SuexecUserGroup admin admin
    CustomLog /var/log/httpd/domains/ bytes
    CustomLog /var/log/httpd/domains/ combined
    ErrorLog /var/log/httpd/domains/
    <Directory /home/admin/domains/>
            php_admin_flag safe_mode OFF
            php_admin_flag engine ON
            php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f'
            php_admin_value mail.log /home/admin/.php/php-mail.log
            php_admin_value open_basedir /home/admin/:/tmp:/var/tmp:/usr/local/lib/php/

There is a similar VirtualHost for 443 (SSL).

Below is my rewrite log and the DocumentRoot seems to have already been added. The first rewrite rule is the htaccess one on the third line.

[19/Feb/2014:09:45:44 --0800] [][rid#d06080/initial] (3) [perdir /home/admin/domains/] add path info postfix: /home/admin/domains/ -> /home/admin/domains/

[19/Feb/2014:09:45:44 --0800] [][rid#d06080/initial] (3) [perdir /home/admin/domains/] strip per-dir prefix: /home/admin/domains/ -> home/admin/domains/

[19/Feb/2014:09:45:44 --0800] [][rid#d06080/initial] (3) [perdir /home/admin/domains/] applying pattern '^\.htaccess$' to uri 'home/admin/domains/'

I have AllowOverrides set to None. So, no htaccess files are used. I include all the stuff that would normally be in htaccess files like so: Include /home/admin/webfiles/bightaccess.conf

bightaccess.conf is not in the DocumentRoot directory or a subdirectory.

Here are the rewrite directives in bightaccess.conf

<Directory ~ "/home/admin/domains/|public)_html">
    Options +FollowSymLinks -Indexes -MultiViews
    <IfModule mod_rewrite.c>

    RewriteEngine on
    RewriteBase /

    # Deny access from .htaccess
    RewriteRule ^\.htaccess$ - [F]
    ServerSignature off

    # ensure https is used for certain pages
    RewriteCond %{HTTPS} off
    RewriteCond %{QUERY_STRING} main_page=(login|login_vendor|password_forgotten|create_account|account|order|address_book|gv_|contact|download^s|report|submit_product|time_out|time_out_vendor|coupon_lookup)
   RewriteRule ^/?(.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

   # ensure https is used for certain pages
   # used when Simple SEO URL aliases are used
   RewriteCond %{HTTPS} off
   RewriteCond %{REQUEST_URI} login|login_vendor|password_forgotten|create-account|account|order|address_book|gv_|contact|download^s|report|submit-product|time_out|time_out_vendor|coupon_lookup
   RewriteRule ^/?(.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

 # add www to top level domain
 # got this from rewrite manual
 RewriteCond %{SERVER_PORT} 80
 RewriteCond %{HTTP_HOST} !^www\.mysite\.com [NC]
 RewriteCond %{HTTP_HOST} !^$
 RewriteRule ^/?(.*)$1 [L,R,NE]

 # add www to top level domain
 RewriteCond %{SERVER_PORT} 443
 RewriteCond %{HTTP_HOST} !^www\.mysite\.com [NC]
 RewriteCond %{HTTP_HOST} !^$
 RewriteRule ^/?(.*)$1 [L,R,NE]

 RewriteCond %{SCRIPT_FILENAME} !-f
 RewriteCond %{SCRIPT_FILENAME} !-d
 RewriteRule ^/?(.+) index.php/$1 [E=VAR1:$1,QSA,PT,L]


This may be something simple but it's been driving me bonkers. Hopefully someone out there will have seen this before. I can provide any additional info needed!


P.S. I've already looked at similar posts: mod_rewrite adding documentroot to url

but no dice. My statement already points to the DocumentRoot.

share|improve this question
The logs that you've shown seem to be from the client's request after the redirect has been sent to them - is there anything logged by rewrite on the request where the 30x response is sent? – Shane Madden Feb 25 '14 at 20:28
I always recommend you place the non-www version in its own VirtualHost, that contains nothing but the redirect. – Michael Hampton Feb 25 '14 at 20:35


I decided not to use rewrite for my non-www to www redirects. Instead I added VirtualHosts as Michael suggested (thanks).

Still not sure why DocumentRoot was being added.

(fake site IP used in answer)

  Redirect /

  Redirect /
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.