How to host a Primary Domain from a Subfolder via (.htaccess)
Modifying the .htaccess
The following code will need to be added to the .htaccess file in the public_html folder of your hosting account. You will need to insert the following code block and make modifications as noted in the (#) comments.
You will need to change the two instances of example.com to your domain, and the three instances of subdirectory to the folder where you want your site.
# BlueHost.com
# .htaccess main domain to subdirectory redirect
# Do not change this line.
RewriteEngine on
# Change example.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/subdirectory/
# Don't change the following two lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /subdirectory/$1
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subdirectory/index.html [L]
Visitors to your Web site will not be able to tell that your main domain is using a sub directory, they will still see the Web site address as http://www.example.com/page.html (www.example.com).
Please note that this will not work with some website software. You may also need to modify the $base_url, $live_site or other configuration settings to finish the process.
Thank you : https://my.bluehost.com/cgi/help/347#vote
If you have lost .htaccess file
just create a file in your file manager and name it .htaccess 🙂