title: Remove index.php and subdirectory in url string Joomla
body: <p>I am trying to remove the subdirectory name and the index.php from a website running Joomla.
  I have the following setup: <br />
  ../public_html/.htaccess <br />
  ../public_html/subdir/htaccess.txt</p>
  
  <p>I have looked through several articles such as <a href="https://expressionengine.stackexchange.com/questions/12511/remove-index-php-and-subdirectory-in-url-string">this one</a> that have helped me a little but I can't quite get there. I have also studied a little about the .htaccess file from articles such as <a href="https://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/" rel="nofollow noreferrer">this one</a> and <a href="http://www.cheatography.com/davechild/cheat-sheets/mod-rewrite/" rel="nofollow noreferrer">this one</a> to help me with this.</p>
  
  <p>The setup that works but displays the subdirectory and index.php looks like this:</p>
  
  <p>cat /../public_html/.htaccess</p>
  
  <pre><code> RewriteEngine on
      RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ 
      RewriteCond %{REQUEST_URI} !^/subdir/ 
      RewriteCond %{REQUEST_FILENAME} !-f 
      RewriteCond %{REQUEST_FILENAME} !-d 
      RewriteRule ^(.*)$ /subdir/$1 
      RewriteCond %{HTTP_HOST} ^(www\.)?domainn\.co\.uk$ 
      RewriteRule ^(/)?$ subdir/index.php [L]
  
      # Use PHP5.4 as default
      AddHandler application/x-httpd-php54 .php
  </code></pre>
  
  <p>cat /../public_html/subdir/htaccess.txt    (Joomla default)</p>
  
  <pre><code>##
  # @package    Joomla
  # @copyright  Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved.
  # @license    GNU General Public License version 2 or later; see LICENSE.txt
  ##
  
  ##
  # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
  #
  # 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 &lt;script&gt; tag in URL.
  RewriteCond %{QUERY_STRING} (&lt;|%3C)([^s]*s)+cript.*(&gt;|%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 /
  
  ## 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.
  </code></pre>
  
  <p>I have tried to follow the suggestions of the article mentioned above and got the files to look like this:</p>
  
  <p>cat /../public_html/.htaccess.try</p>
  
  <pre><code>RewriteEngine on
  RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
  RewriteRule ^(.*)$ http://domain/$1 [R=301,L]
  RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ 
  RewriteRule ^(.*)$ /subdir/$1 [PT,L,QSA]
  #RewriteRule ^(/)?$ subdir/index.php [L]
  
  # Use PHP5.4 as default
  AddHandler application/x-httpd-php54 .php
  </code></pre>
  
  <p>cat /../public_html/subdir/htaccess.txt.try</p>
  
  <pre><code>.
  .
  .
  # RewriteBase /
  ## 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 ^(.*)$ /$1 [L]
  
  RewriteRule ^subdir/index.php?(.*)$ /$1 [L]
  #
  ## End - Joomla! core SEF Section.
  </code></pre>
  
  <p>With the two .try files saved instead of the originals, I am getting a redirection loop, as printed out by the browser:</p>
  
  <pre><code>This webpage has a redirect loop
  
  ERR_TOO_MANY_REDIRECTS
  </code></pre>
  
  <p>I have also tried modifying the files myself but most of them lead to "internal server error" probably meaning the syntax written is not correct, or they overrule each other?<br /><br />
  Any idea how the two files should look like?</p>