Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

olup

Cancelled
Original poster
Oct 11, 2011
383
40
I'm a total newbie, when it comes to htaccess files and I have a few questions about htaccess files. I would for a start like to accomplish two things:
a) redirect to a page without www. b) get the custom 404 html page working

I have fiddled around with htaccess and read a bunch of tutorials, however I've always gotten a 500 internal server error, when uploading the htaccess file in the root of my provider's server and I would like to know why that is.
From what I understand is that you upload the htaccess file to the root of the server, which would be www/public_html of my domain folder or do I have to change the directory to www/mydomain/public_html?
Anyway so this is what I got so far:

//Rewrite to www
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain.com[nc]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [r=301,nc]

//Custom 404 errors
ErrorDocument 404 www/public_html/404.html (the 404.html is in the root folder of the server along with the other html pages)

Thanks in advance for your advice and help!
 

SrWebDeveloper

macrumors 68000
Dec 7, 2007
1,871
3
Alexandria, VA, USA
If you want to affect all files/folders recursively for your site:

Upload it to the doc root (not root) meaning the folder Apache is set to look in for the base directory of your web site. If your web site is working fine, use PHP to examine the value of $_SERVER['DOCUMENT_ROOT'].

Otherwise place it in a specific folder to affect only that folder and its children.

.htaccess does nothing more than override settings in the Apache config file for folders and any children. Warning - some CMS's like Drupal already have .htaccess with necessary rules -- unwise to modify as its distributed with core updates and might be overridden so update Apache config or virtual host setup instead, otherwise either append and remember to re-add after updating or update Apache config if possible.

Any mistake will result in internal server error- these things are usually tested on a sandbox, never prod directly. FYI.

As to re-writing so www is enforced for any path:

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

As to 404:

Code:
ErrorDocument 404 /path/to/404page.html

The path is relative to the document root (not root as in "/" top level dir).

So try those, edit to use your domain, adjust path to be relative to doc root and you should be ok.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.