- Tested on HostMonster.com (main domain)
- Drupal 5.7
- e.g. drupal57 as public_html subdirectory containing Drupal codebaseI’ve an existing Drupal installation within public_html on HostMonster for my main domain. Here the steps I’ve done to move the codebase on a subdirectory without changing URLs:
- Put offline the website: go to Administer > Site Maintenance
- Backup your codebase (Select all > Compress via Cpanel: remember to put your backup file outside public_html to prevent download)
- Move codebase via File Manager:
- Go to CPanel > File Manager
- Create a new directory (e.g.
drupal57
) - Use “Select all” to check all codebase files, then deselect drupal57
- Move all selected files to
drupal57
, including .htaccess file
All privileges will be maintained.
- Now, create an empty .htaccess file on public_html (note: if you have chosen PHP rendering via FastCGI, you have to go to PHP Configuration and set your preferences, It’ll be add a new line on your .htaccess on public_html, creating it if necessary)
- Add new .htaccess lines following the HostMonster’s How to make a subfolder the main folder for your main domain.
Edit drupal57/.htaccess (via file manager or locally) uncommenting RewriteBase and setting it to /drupal57 (e.g.Update: errors occurs when used by other subdomains: do not useRewriteBase /drupal57
)- Edit drupal57/sites/yoursite.com/settings.php and uncomment $base_url line (e.g. $base_url = ‘http://www.yoursite.com’; )
Update: This is useful when used on main domain (yoursite.com, http://www.yoursite.com) following step (5).- If you want main domain (e.g. yoursite.com) and subdomain (e.g. mysub.yoursite.com) to display the same content, you have to leave this line uncommented
- When you transform your main domain into a subdomain (e.g. when you have a brand new site to promote to main domain), you have to comment this line.
- Put your site online
Now try to navigate your site. Your URLs are the same you had before moving your files.
Perfect..
Just what I was looking for..
Brief and to the point.
Thank you so much for sharing this. I got it to work in minutes