title: set correctly routing in Symfony to have correct url and route
body: <p>I use <strong>Symfony 2.5</strong> (latest version) for create a web application. I work with <strong>WAMP local server on windows 7</strong>.</p>
  
  <p>When I <strong>lauch</strong> the application, this is the <strong>url</strong> I get <code>http://localhost/Symfony/web/</code>. In fact I would like to add <strong>/homepage</strong>.</p>
  
  <p>I have the first bundle named <em>WelcomeBundle</em> with his controller: It concerns my application <strong>homepage</strong>: <code>Gir/WelcomeBundle/Controller/HomePageController.php</code></p>
  
  <pre><code>&lt;?php
  
  namespace Gir\WelcomeBundle\Controller;
  
  use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  
  class HomePageController extends Controller
  {
      public function indexAction()
      {
          return $this-&gt;render('GirWelcomeBundle:HomePage:index.html.twig');
      }
  }
  </code></pre>
  
  <p>This is the <strong>routing file</strong>: <code>Gir/WelcomeBundle/Ressource/config/routing.yml</code></p>
  
  <pre><code>GirWelcomeBundle_HomePage:
    pattern:  /
    defaults: { _controller: GirWelcomeBundle:HomePage:index }
    requirements:
      methods: GET
      schemes:  https
  </code></pre>
  
  <p>And this is the <strong>general routing file</strong>: <code>app/config/routing.yml</code></p>
  
  <pre><code>GirWelcomeBundle:
      resource: "@GirWelcomeBundle/Resources/config/routing.yml"
      prefix:   /
  
  gir_administration:
      resource: "@GirAdministrationBundle/Resources/config/routing.yml"
      prefix:   /
  
  fos_user:
      resource: "@FOSUserBundle/Resources/config/routing/all.xml"
  
  gir_user:
      resource: "@GirUserBundle/Resources/config/routing.yml"
      prefix:   /
  </code></pre>
  
  <p>So when I arrive <strong>first</strong> on the application, I have my <strong>HomePage</strong>, so it works perfectly. This is the <strong>url</strong> when I lauch the application: <code>http://localhost/Symfony/web/</code></p>
  
  <p>But if I want to <strong>add a path</strong> like this (I add <strong>/homepage</strong> on the path line): <code>Gir/WelcomeBundle/Ressource/config/routing.yml</code></p>
  
  <pre><code>GirWelcomeBundle_HomePage:
    pattern:  /homepage
    defaults: { _controller: GirWelcomeBundle:HomePage:index }
    requirements:
      methods: GET
      schemes:  https
  </code></pre>
  
  <p>The application doesn't <strong>find the route</strong>, I have this error: </p>
  
  <pre><code>No route found for "GET /" (from "http://localhost/Symfony/")
  404 Not Found - NotFoundHttpException
  1 linked Exception: ResourceNotFoundException »
  </code></pre>
  
  <p>Someone know why?</p>
  
  <p>Then, when I'm trying to lauch the <strong>administration</strong> page, the browser show me that the page is an <strong>unreachable web page</strong> like <a href="http://i1-news.softpedia-static.com/images/news-700/Chrome-Adds-an-quot-Offline-Cache-quot-Mode-to-Access-Unreachable-Pages.png" rel="nofollow">this</a>.</p>
  
  <p>I don't really understand. 
  The bundle is named <strong>AdministrationBundle</strong>, this the <strong>controller</strong> code: <code>Gir/AdministrationBundle/Controller/AdministrationController.php</code></p>
  
  <pre><code>&lt;?php
  
  namespace Gir\AdministrationBundle\Controller;
  
  use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  
  class AdministrationController extends Controller
  {
      public function indexAction()
      {
          return $this-&gt;render('GirAdministrationBundle:Admin:index.html.twig');
      }
  }
  </code></pre>
  
  <p>And this the <strong>routing file</strong>: <code>Gir/AdministrationBundle/Ressource/config/routing.yml</code></p>
  
  <pre><code>gir_administration_homepage:
      pattern:  /administration
      defaults: { _controller: GirAdministrationBundle:Administration:index }
      requirements:
      methods: GET
      schemes:  https
  </code></pre>
  
  <p>Someone could help me and explain me why?</p>
  
  <p>Update post:
  this the .htacess in web folder</p>
  
  <pre><code>DirectoryIndex app.php
  
  &lt;IfModule mod_rewrite.c&gt;
      RewriteEngine On
  
  
      # Determine the RewriteBase automatically and set it as environment variable.
      # If you are using Apache aliases to do mass virtual hosting or installed the
      # project in a subdirectory, the base path will be prepended to allow proper
      # resolution of the app.php file and to redirect to the correct URI. It will
      # work in environments without path prefix as well, providing a safe, one-size
      # fits all solution. But as you do not need it in this case, you can comment
      # the following 2 lines to eliminate the overhead.
      RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
      RewriteRule ^(.*) - [E=BASE:%1]
  
      # Sets the HTTP_AUTHORIZATION header removed by apache
      RewriteCond %{HTTP:Authorization} .
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ app_dev.php [QSA,L]
  
      # Redirect to URI without front controller to prevent duplicate content
      # (with and without `/app.php`). Only do this redirect on the initial
      # rewrite by Apache and not on subsequent cycles. Otherwise we would get an
      # endless redirect loop (request -&gt; rewrite to front controller -&gt;
      # redirect -&gt; request -&gt; ...).
      # So in case you get a "too many redirects" error or you always get redirected
      # to the start page because your Apache does not expose the REDIRECT_STATUS
      # environment variable, you have 2 choices:
      # - disable this feature by commenting the following 2 lines or
      # - use Apache &gt;= 2.3.9 and replace all L flags by END flags and remove the
      #   following RewriteCond (best solution)
      RewriteCond %{ENV:REDIRECT_STATUS} ^$
      RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
  
      # If the requested filename exists, simply serve it.
      # We only want to let Apache serve files and not directories.
      RewriteCond %{REQUEST_FILENAME} -f
      RewriteRule .? - [L]
  
      # Rewrite all other queries to the front controller.
      RewriteRule .? %{ENV:BASE}/app.php [L]
  &lt;/IfModule&gt;
  
  &lt;IfModule !mod_rewrite.c&gt;
      &lt;IfModule mod_alias.c&gt;
          # When mod_rewrite is not available, we instruct a temporary redirect of
          # the start page to the front controller explicitly so that the website
          # and the generated links can still be used.
          RedirectMatch 302 ^/$ /app.php/
          # RedirectTemp cannot be used instead
      &lt;/IfModule&gt;
  &lt;/IfModule&gt;
  </code></pre>