2015-03-30 88 views
1

我在我的Apache2上安裝了最新的Laravel。我跑在終端Laravel虛擬服務器路由不起作用

php artisan serve --port=8080 

它的工作原理。我有子頁面和我需要的一切。但我想要訪問而不運行此命令。

我在/etc/apache2/sites-available

<VirtualHost *:80> 
    ServerName mylaravel.com 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/mylaravel/public 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

我Laravel文件下一mylaravel.com.conf文件當然是在/var/www/mylaravel的。在這種配置mylaravel.com的作品,但是當我嘗試簡單mylaravel.com/auth/register阿帕奇返回

enter image description here

當我使用PHP的工匠[...]這工作得很好。我該如何解決它?

回答

3

前段時間我也遇到過這個問題。從here

如果您沒有設置AllowOverride設置爲所有,你Laravel .htaccess文件(/public/.htaccess)將無法啓用mod_rewrite的,和你的路由將無法正常工作。

嘗試添加以下到您的<VirtualHost>塊:

<Directory "/var/www/mylaravel/public"> 
    Options All 
    AllowOverride All 
    Allow from all 
</Directory> 

所以一切都取決於你必須:

<VirtualHost *:80> 
    ServerName mylaravel.com 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/mylaravel/public 

    <Directory "/var/www/mylaravel/public"> 
     Options All 
     AllowOverride All 
     Allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 
+0

他得到的錯誤是「404 Not Found」,而不是「403 Forbidden」。 – ghoti 2015-03-31 04:55:57

+0

@ghoti我知道。這個解決方案適用於我,所以也許它也會幫助OP。 – Sadurnias 2015-03-31 04:59:11

+0

您是否知道*爲什麼*該解決方案適合您?在laravel的documentroot中是否有可能通過單個PHP腳本強制所有請求的.htaccess?我對Larevel一無所知,但我知道當你進行服務器配置更改時,它們不應該是偶然的。也許包括一個鏈接到[相關的Laravel文檔](http://laravel.com/docs/5.0#pretty-urls)可能會改善你的答案。 – ghoti 2015-03-31 10:27:14

0

我發現了什麼。我加入Sadurnias代碼,並在終端

須藤運行a2enmod重寫 須藤服務的Apache2重啓

當然我改在/ var/WWW的chmod命令755

它的正常工作,只有當我運行mylaravel .com/css FireFox不會結束這個請求,但其他人沒問題。

+0

如果我的回答對你有幫助,你能接受嗎? :) – Sadurnias 2015-03-31 22:46:34

+0

在這裏你去;)愚蠢的代表點; D – ventaquil 2015-04-01 10:00:03