Cloud Service >> Knowledgebase >> How To >> How to Change My Document Root Folder Using an .htaccess File
submit query

Cut Hosting Costs! Submit Query Today!

How to Change My Document Root Folder Using an .htaccess File

When configuring a server, especially for hosting websites, you may need to change the document root directory. The document root is the main folder where your website files are stored and accessed by default. Using an .htaccess file, you can modify the document root without making major changes to server configuration files. This is particularly useful in shared or colocation hosting environments where you might not have direct access to server-level settings.

Here’s a step-by-step guide on how to change the document root folder using an .htaccess file.

Understanding the Document Root and .htaccess Files

The document root is the top-level directory that serves your website’s files to users. By default, this folder is usually named public_html or www for hosting environments, and any files within this folder can be accessed through your domain. Changing the document root can help organize your files, improve security, or enable you to use a different folder for specific applications.

The .htaccess file is a configuration file on Apache servers that allows you to make directory-specific changes to server behavior. By modifying .htaccess, you can redirect requests, control permissions, and change the document root. Note that .htaccess only works on Apache servers, so this solution applies only to hosting environments running Apache.

Steps to Change the Document Root Using .htaccess

Before proceeding, make sure you have a backup of your .htaccess file in case you need to revert any changes. Also, remember that if you are in a shared hosting environment, you might need to verify with your hosting provider if .htaccess overrides are supported for changing the document root.

1. Locate the .htaccess File

The .htaccess file is usually located in the document root of your server, which is often public_html or www.

If your hosting provider allows multiple .htaccess files, you can also place one in any subdirectory to apply changes only to that directory.

2. Create or Open the .htaccess File

If there is already an .htaccess file in your root directory, open it for editing. You can do this using an FTP client or a file manager within your cloud hosting control panel.

If there isn’t an .htaccess file, create one in the desired directory. Ensure the filename is .htaccess with no other extensions.

3. Add a Rewrite Rule to Change the Document Root

To redirect requests to a new document root, use a rewrite rule. This rule will instruct the server to redirect requests for the current document root to a different folder. Here’s an example:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/new_root/

RewriteRule ^(.*)$ /new_root/$1 [L]

RewriteEngine On enables the Apache rewrite module.

RewriteCond %{REQUEST_URI} !^/new_root/ tells the server to apply the rule only if the request is not already pointing to /new_root/.

RewriteRule ^(.*)$ /new_root/$1 [L] rewrites the request to the new folder, /new_root/ in this example. The [L] flag indicates this is the last rule to be processed.

Make sure to replace /new_root/ with the actual path to the folder you want as your new document root.

4. Redirect to the New Document Root (Optional)

If you want to ensure users are redirected to the new root folder, you can add a redirect rule in .htaccess:

RedirectMatch 301 ^/$ /new_root/

RedirectMatch 301 ^/$ /new_root/ is a permanent redirect that will automatically direct requests from the original document root to the new one.

5. Test Your Configuration

Once you’ve added the rewrite and redirect rules, save the .htaccess file and upload it if you’re using an FTP client. Then, test the configuration by navigating to your website’s URL. You should be redirected to the new root folder. For example, if you added /new_root/, then accessing yourdomain.com should show the contents of that folder.

6. Verify File Permissions

After changing your document root, ensure that all permissions in the new directory are set correctly. Files and directories within the new document root should have read permissions for the web server to function properly. The usual permission for files is 644 and for directories is 755, but confirm based on your specific server setup.

Additional Tips for Changing Document Root with .htaccess

Check Server Support: Not all hosting or colocation servers support document root changes via .htaccess. If your server uses different software (e.g., Nginx), .htaccess won’t apply, and you’ll need to configure document root in the server’s main configuration files.

Security Best Practices: Changing the document root can enhance security by isolating web-accessible files from critical application files. It’s best to avoid storing sensitive files (e.g., configuration files, credentials) in a web-accessible document root.

Using Colocation for Flexibility: If you’re managing servers in a colocation environment, you typically have more flexibility to modify server configurations. Colocation servers often provide more control over .htaccess rules and can allow a more complex setup for document root management.

Conclusion

Changing the document root using .htaccess is a straightforward process that can help manage and secure your server files effectively. This approach is ideal for Apache servers, as it provides flexibility in directing requests to different folders. For hosting or colocation environments, ensuring compatibility with .htaccess directives and testing configuration changes are crucial for maintaining server performance and accessibility. By following these steps, you can easily redirect your website’s document root, helping you customize file management and optimize server operations.

Cut Hosting Costs! Submit Query Today!

Grow With Us

Let’s talk about the future, and make it happen!