When I visit www.mysite.com all is well. When I visit mysite.com (without the www) I get redirected to http://www.mysite.com/home/admin/domains/mysite.com/public_html which gives a 404 error.
/home/admin/domains/mysite.com/public_html 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:
ServerName www.mysite.com
ServerAlias www.mysite.com mysite.com
ServerAdmin webmaster@mysite.com
DocumentRoot /home/admin/domains/mysite.com/public_html
ScriptAlias /cgi-bin/ /home/admin/domains/mysite.com/public_html/cgi-bin/
UseCanonicalName OFF
SuexecUserGroup admin admin
CustomLog /var/log/httpd/domains/mysite.com.bytes bytes
CustomLog /var/log/httpd/domains/mysite.com.log combined
ErrorLog /var/log/httpd/domains/mysite.com.error.log
php_admin_flag safe_mode OFF
php_admin_flag engine ON
php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f admin@mysite.com'
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] [www.mysite.com/sid#9ffeb8][rid#d06080/initial] (3) [perdir /home/admin/domains/mysite.com/public_html/] add path info postfix: /home/admin/domains/mysite.com/public_html/home -> /home/admin/domains/mysite.com/public_html/home/admin/domains/mysite.com/public_html/
[19/Feb/2014:09:45:44 --0800] [www.mysite.com/sid#9ffeb8][rid#d06080/initial] (3) [perdir /home/admin/domains/mysite.com/public_html/] strip per-dir prefix: /home/admin/domains/mysite.com/public_html/home/admin/domains/mysite.com/public_html/ -> home/admin/domains/mysite.com/public_html/
[19/Feb/2014:09:45:44 --0800] [www.mysite.com/sid#9ffeb8][rid#d06080/initial] (3) [perdir /home/admin/domains/mysite.com/public_html/] applying pattern '^\.htaccess$' to uri 'home/admin/domains/mysite.com/public_html/'
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
Options +FollowSymLinks -Indexes -MultiViews
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 ^/?(.*) http://www.mysite.com/$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 ^/?(.*) https://www.mysite.com/$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!
Thanks!
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.
Comments
Post a Comment