2016-08-15 65 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