【问题标题】:Laravel route not workingLaravel路线不起作用
【发布时间】:2015-03-18 04:40:13
【问题描述】:

我有两条路线,一条有效,另一条无效,我不知道为什么。

第一个有效,当我访问主页时,视图按预期显示。

Route::get('/', array('as' => 'homepage', function()
{
    return View::make('home');

}));

第二个出现NotFoundHttpException 错误

Route::get('about', array('as' => 'aboutpage', function()
{
    return View::make('about');

}));

我的其他 Laravel 项目在这种格式下运行良好,主页也运行良好。如果我访问 localhost/laravel/public/index.php/about 它可以工作,但 `localhost/laravel/public/about 不能。

我正在使用 WAMP 并且 Apache 模块 rewrite_module 已打开。我已经重启了很多次了。

【问题讨论】:

  • AllowOverride 是否设置为 all ?

标签: laravel laravel-4 laravel-routing


【解决方案1】:

在您项目的 .htaccess 文件中尝试此代码:-

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

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

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

【讨论】:

【解决方案2】:

我建议你这样做:

1-尝试return 'hello'而不是页面:

Route::get('about', array('as' => 'aboutpage', function()
{
    return 'hello';
}));

2-尝试这样做stackoverflow

【讨论】:

  • 也试了一下,但同样的问题一直在发生。我最终做的只是创建一个新项目,然后将完全相同的代码复制并粘贴到其中,它就可以工作了。这真的很奇怪,因为第一个项目也是一个全新的项目。
  • @MichaelN 这个答案对你有帮助吗?
  • 不,同样的事情也会发生。我刚刚重新启动项目并将我的代码复制到其中并且它可以工作。我不知道是什么原因。
  • @MichaelN,好的,我会删除这个答案
【解决方案3】:

1) 转到服务器的 httpd.conf 文件并从下面显示的行中删除哈希

LoadModule rewrite_module modules/mod_rewrite.so

2) 并在同一个 httpd.conf 文件中将 AllowOverride none 替换为 AllowOverride All

【讨论】:

    猜你喜欢
    • 2017-10-02
    • 2013-05-03
    • 2014-09-08
    • 2017-12-13
    • 2017-02-27
    相关资源
    最近更新 更多