2014-01-27 202 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文件中注册一个。所以检查你的服务器配置。