2014-01-27 199 views
1

我希望你能幫助我爲被抓我的頭的年齡..Laravel 4路由問題

我稱之爲「MYAPP」安裝文件夾中的laravel 4 www.example.com/myapp/

我打電話這一點,但我得到應用不確定..

Route::get('login', function(){ 
//do something 
}); 

我能得到它的工作的唯一辦法是這樣的,但它攪亂了一切所有樣式等。

Route::get('/myapp/login', function(){ 
//do something 
}); 

這是我目前的.htaccess文件

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    Options -MultiViews 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
</IfModule>        

有誰知道如何得到它只是MyApp文件夾的工作?

在此先感謝。

回答

2

我現在已經想通了。

我需要的.htaccess文件從這個

RewriteRule^index.php [L] 

改變這種

RewriteRule^/myapp/index.php [L] 
+0

這是解決方案,如果您在共享主機上且無法訪問路由,@Mikes評論是解決方案,如果您有權訪問根目錄。 – TheNickyYo

1

我覺得你的Web服務器可能配置錯誤。正確的Web服務器配置通常不需要更改爲.htaccess

通常,使用Laravel,您應該有一個DocumentRoot指令,該指令將Web服務器指向Laravel安裝的公共目錄。

在操作系統中,您的具體做法會有所不同。在我的系統上,這是一個運行Ubuntu Linux的開發系統,託管多個Laravel項目,我使用多個虛擬服務器。這些虛擬服務器的Ubuntu配置存儲在/etc/apache2/sites-enabled中。我的日曆項目(本地,calendar.dev)的配置文件如下所示。

$ cat /etc/apache2/sites-enabled/calendar.dev 
<VirtualHost *:80> 
ServerName calendar.dev 
ServerAlias calendar.dev *.calendar.dev 
DocumentRoot "/var/www/calendar/public" 
HostNameLookups double 
</VirtualHost>% 

如果你在的地方默認的「公共」文件夾中的使用「的myapp」,那麼你的DocumentRoot指令應指向「MYAPP」而不是「公共」。

如果您使用「myapp」代替默認的「app」目錄,則需要備份並重新考慮此問題。網絡用戶不應該訪問「應用程序」目錄。

+0

感謝您的回覆,我會牢記這一點。但對於這種情況,我在共享主機上。 – TheNickyYo

0

我完全同意Mike Sherrill。 Laravel附帶.htaccess配置文件,「開箱即用」。舊版Laravel出現了一些問題,但是L4沒有。如果您計劃添加新的虛擬主機,請不要忘記在/etc/hosts文件中註冊一個。所以檢查你的服務器配置。