I have my Joomla site placed into a subfolder of the root public_html folder. I have activated the url rewriting Global Option in the Joomla Admin Panel. I access to the website through the http://web.es/joomla.

I would like to access to this site through http://web.es without '/joomla'. I have been setting both the root level .htaccess as the .htaccess placed into the /public_html/joomla/ folder

root level (/public_html/) (/) .htaccess file content:

RewriteCond %{HTTP_HOST} ^(www.)?web.es$ [NC]
RewriteCond %{REQUEST_URI} !^/joomla/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /joomla/$1
RewriteCond %{HTTP_HOST} ^(www.)?web.es$ [NC]
RewriteCond %{REQUEST_URI} ^/joomla/
RewriteRule ^/joomla/(.*) joomla/ [L]

/public_html/joomla .htaccess file content:

# @package    Joomla
# @copyright  Copyright (C) 2005 - 2016 Open Source Matters. All rights reserved.
# @license    GNU General Public License version 2 or later; see LICENSE.txt

# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that disallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's.  If they work,
# it has been set by your server administrator and you do not need it set here.

## No directory listings
IndexIgnore *

## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Options -Indexes

## Mod_rewrite in use.

RewriteEngine On

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
## End - Custom redirects

# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).

 RewriteBase /joomla/

## Begin - Joomla! core SEF Section.
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
## End - Joomla! core SEF Section.

How could it be reached?

5 Answers 5


The simplest way to achieve this is to setup your domain's root folder to be /public_html/joomla. This can easily be done with any add-on domain in a cPanel hosting environment. If you'll give more details of your server setup, I can provide more info on the proper steps.


From your comments:

I have several sites with his respectives folders hosted into the public_html root folder

It looks like you want to host multiple sites in a single hosting account. Assuming your hosting provider allows it, you just need to add additional domains (addons) and set up a separate document root for each of them.

You can ask your hosting provider for assistance in setting up the additional domains. Then nothing special is needed for the .htaccess.


If your Joomla website is in the actual root folder then there should be no /joomla/ in your URL. It sounds like you have simply put your entire website into a Joomla folder. This is not necessary.

Make a server backup before doing this just to be on the safe side, but I suspect you just need to move all files and folders up one level, makign the /Joomla/ folder empty.

  • Yes, to have only one site hosted directly into de root folder would be the ideal. In my particular case, I have several sites with his respectives folders hosted into the public_html root folder
    – jgc412
    Commented May 24, 2016 at 20:34
  • Well either you can sort this out in your web hosting control panel or your hosting company will be able to tell you how to resolve the problem. Commented May 25, 2016 at 7:04

I think that you need to organize your server setting some subdomains where you can locate in other websites. Then you can move your Joomla! site in the server root.


it's not quite Joomla way, but if you sure that you need it to work this way:

try to put Joomla htaccess file to public_html

and add there index.php file with


there can be issue with images and other files, but it can be fixed with some additional htaccess rules

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.