无法在Laravel框架中路由

时间:2015-12-19 17:45:41

标签: php apache laravel

我用PHP创建了一个带有Laravel框架的应用程序。

我遇到路由问题。

.htaccess文件如下所示:

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

RewriteEngine On

# 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]

routes.php文件:

<?php
get('/', function () {
return view('welcome');
});


get('1', function() { return 'Je suis la page 1 !'; });
get('2', function() { return 'Je suis la page 2 !'; });

当我加载http://localhost:63342/game/public/时,服务器会加载welcome.blade.php文件,所以它就是okey。但是当我想加载http://localhost:63342/game/public/1时,我收到错误:404 Not Found。 我使用了appache服务器,我已经启用了&#39; mod_rewrite&#39;行动。 有什么问题?

2 个答案:

答案 0 :(得分:0)

我猜你的laravel应用程序可能在子目录中。您的重写规则应该反映出来。我不太确定你的RewriteRule应该如何改变但它应该是这样的......

RewriteRule ^game/public/(.*)/$ /game/public/$1 [L,R=301]

这不是一个真正的答案......但是要尝试一下。

希望有所帮助。

答案 1 :(得分:0)

我找到了解决方案。 我在httpd.conf中为apache服务器启用了mod_rewrite操作,但问题是,我没有为我的项目在此文件中设置正确的目录路径。

应该看起来像这样:

DocumentRoot "/Applications/MAMP/htdocs"

<Directory "/Applications/MAMP/htdocs" >
    Options Indexes FollowSymLinks
    AllowOverride All 
</Directory>

希望,它将来有助于某人。