2015-09-22 33 views
1

我遇到的問題與laravel 5 /auth/login not found完全相同。唯一的區別是他使用的是WAMP,而我使用的是Apache + Ubuntu 14.在Apache + Ubuntu上找不到Laravel 5.1/auth/login

當我訪問http://example.com/index.php/auth/login時,網頁顯示完美。但http://example.com/auth/login將返回此錯誤

在此服務器上找不到請求的URL/auth/login。

我試着同時啓用Apache的mode_rewrite,並重新安裝Apache,如laravel 5 /auth/login not found中所建議的。兩種方式都沒有奏效。

+0

您的意思是mod_rewrite的訪問您的網站? – evandentremont

+0

是的,抱歉的錯字。 –

回答

5

請確保您有正確的.htaccess文件,比方說你有你安裝在/var/www/html/myapp,你應該有公共目錄(/var/www/html/myapp/public)讀取內部的.htaccess文件:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 
    RewriteBase /myapp/ 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
</IfModule> 

而且,是否正確配置了Apache文檔根目錄?

打通終端,運行sudo nano /etc/apache2/sites-available/000-default.conf並把這些線詮釋,他的配置文件中的默認根映射到的myapp /公共文件夾:

Alias /myapp /var/www/html/myapp/public/ 
<Directory "/var/www/html/myapp/public"> 
     AllowOverride All 
     Order allow,deny 
     allow from all 
</Directory> 

,然後重新啓動Apache的

sudo service apache2 restart 

當然應該啓用Mod重寫:

a2enmod rewrite 
sudo service apache2 restart 

您現在應該能夠在http://localhost/myapp

+2

我強調'的AllowOverride All' ..它可能是根本原因爲默認的實際安裝有在/ var/WWW文件夾的AllowOverride無,你可能需要在/etc/apache2/apache2.conf中 – evandentremont

+0

精彩改變這種@ evandentremont。你的建議就像一個魅力!感謝你們的親切幫助! –