title: .htaccess: Redirect root url to subdirectory, but retain root url
body: <p>I am in the process of cleaning up my domain's directory structure (woe be to me for setting up the root url's content in the root directory!) and need some insight on how to use RewriteRule correctly.</p>
  
  <p><strong>The Gist</strong></p>
  
  <p>I want <em>domain.tld</em> to use <em>domain.tld/subdirectory/</em> but still appear as <em>domain.tld</em> in the url.</p>
  
  <p><strong>My .htaccess So Far</strong></p>
  
  <pre><code>Options +FollowSymlinks
  RewriteEngine On
  
  #Force removal of wwww subdomain
  RewriteBase /
  RewriteCond %{HTTP_HOST} ^www.domain.tld
  RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L]
  
  #Trailing slash
  RewriteRule ^/*(.+/)?([^.]*[^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]
  
  #Redirect root url to subdirectory
  RedirectMatch 301 ^/subdirectory/$ http://domain.tld/
  RewriteRule ^/$ /subdirectory/?$ [L]
  </code></pre>
  
  <p>The RedirectMatch works great. Unfortunately, t seems the last RewriteRule there <em>should</em> work simply enough, but it doesn't. The old content setup in the root directory still appears.</p>
  
  <p>What am I missing here?</p>
  
  <p><strong>Update: Resolved</strong></p>
  
  <p>Simple fix that I am not experienced enough with the .htaccess / apache to be able to explain why.</p>
  
  <p>I had:</p>
  
  <pre><code>RewriteRule ^/$ /subdirectory/?$ [L]
  </code></pre>
  
  <p>Removing the one slash fixed everything:</p>
  
  <pre><code>RewriteRule ^$ /subdirectory/?$ [L]
  </code></pre>
  
  <p>So now my question is: <em>why is that?</em></p>