2016-08-15 39 views
-2

我是Symfony的一个初学者,继Symfony的文件,它有a create page tutorial 和创建此之后,当我测试这个使用的浏览器,如何Symfony的路由工作

我可以使用下面的URL访问它

本地主机:8000 /吉利/数量和

本地主机:8000/app_dev.php /吉利/数

但是当我尝试用通常的方式来访问它像

本地主机/应用程序的名字/吉利/数

它给404,我使用Ubuntu与Apache2的本地主机,所以我需要知道这个Symfony3路由背后的想法,为什么我无法通过访问网页通常本地主机/ cmstest /幸运/数

感谢

回答

0

Symfony doc,这是怎么了你的虚拟主机应该是这样的:

<VirtualHost *:80> 
    DocumentRoot /var/www/MySymfonyProject/web 
    <Directory /var/www/MySymfonyProject/web> 
     AllowOverride None 
     Order Allow,Deny 
     Allow from All 
     <IfModule mod_rewrite.c> 
      Options -MultiViews 
      RewriteEngine On 
      RewriteCond %{REQUEST_FILENAME} !-f 
      RewriteRule ^(.*)$ app.php [QSA,L] 
     </IfModule> 
    </Directory> 
    <Directory /var/www/MySymfonyProject/web/bundles> 
     <IfModule mod_rewrite.c> 
      RewriteEngine Off 
     </IfModule> 
    </Directory> 
    ErrorLog /var/log/apache2/MySymfonyProject_error.log 
    CustomLog /var/log/apache2/MySymfonyProject_access.log combined 
</VirtualHost> 

现在你有一个干净的vhost,这里有一些细节/指令:

  • 所有终端命令完成作为管理员(sudo)。
  • 在终端,运行此命令a2enmod rewrite
  • 在终端,只要你不使用任何URL,一定要禁用默认的虚拟主机a2dissite 000-default.conf
  • 在终端,请务必使您的网站虚拟主机a2ensite myVhost.conf
  • 请确保您的项目目录是正确/var/www/MySymfonyProject
  • 在终端,通过localhostlocalhost/app_dev.php重启apache服务,service apache2 restart
  • 访问您的网站(你不必指定软件包名称)
0

因为你要使用web/目录(这是你的应用程序的公共根,只有这个目录应该使用浏览器来访问)。

使用server:run时,会自动使用web/作为服务器根。当通过目录结构的访问,它在URL中包括:http://localhost/appname/web/lucky/number

+0

感谢您的支持。有用的:)) – mapmalith

0

Hewwo PM-Riabel〜

可以粘贴在这里你的虚拟主机配置?
您的第一个问题可能在其中...

您的计算机上只有一个虚拟主机处于活动状态吗?

我猜你尝试从Linux操作系统(纠正我,如果不是这种情况)
你应该一个虚构的URL设置为您的主机文件中查看它(myurl.com),重定向到127.0.0.1(本地主机)
然后你可以配置你的虚拟主机使用这个相同的URL。 (最好是当你想工作多个项目时)

亲切地,
Preciel。

+0

娄你可以看到该文件,我没有任何虚拟主机'<虚拟主机*:80> \t的ServerAdmin网站管理员@本地 \t的DocumentRoot在/ var/www/html等 \t错误日志$ {} APACHE_LOG_DIR /错误。登录 \t的CustomLog $ {} APACHE_LOG_DIR结合/access.log #VIM:你做了什么粘贴语法=阿帕奇TS = 4 SW = 4个STS = 4 SR noet' – mapmalith

+0

就是我们所说的虚拟主机。它写在第一行'' – Preciel