从 xampp 移动到 apache 2.4.7 后,Laravel 路由返回 404。 mod_rewrite aur htaccess 或缺少 apache 设置?

Posted

技术标签:

【中文标题】从 xampp 移动到 apache 2.4.7 后,Laravel 路由返回 404。 mod_rewrite aur htaccess 或缺少 apache 设置?【英文标题】:Laravel routes returning 404 after move from xampp to apache 2.4.7. mod_rewrite or htacess or missing apache setting? 【发布时间】:2014-02-12 00:06:02 【问题描述】:

一个简单的“测试”路由不断返回 404。

Route::get('test', function() 
    return View::make('test');
);

无论是 localhost/test 还是 vhost.dev/test ,甚至在使用我们的 sub.domain.com/test 并且 DNS 指向该特定笔记本电脑时,该路由都不起作用。

我们使用 XAMPP,但在得知 xampp 不适合生产环境后切换到 apache。所以我在我们的一台 win7 笔记本电脑上安装了 apache 2.4.7、php 和各种 sqlsrv 模块。迁移到 Apache 后,即使使用相同的目录结构,所有路由也已停止工作。

我还尝试将 /public 中的所有文件移动到 /htdocs 中,并将应用程序的其余部分移动到根 apache2.4 文件夹中的 laravel 文件夹中。

我测试了是否使用this code on SO 启用了 mod_rewrite。这是响应,所以我想它正在工作?

Apache/2.4.7 (Win32) PHP/5.4.24

mod_rewrite 可用

htaccess

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    RewriteCond %REQUEST_FILENAME !-f
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

【问题讨论】:

我尝试安装一个全新的 laravel 副本,完全默认。我添加了上面的测试路线,但我仍然遇到同样的问题,所以我想可以肯定地说这是 mod_rewrite 或 apache 设置问题?谁能告诉我如何解决这个问题? localhost/index.php/test 工作正常吗? 不。请参阅下面的答案。 【参考方案1】:

This was answered on the Laravel forums.

问题是因为 AllowOverride 在 Apache 中设置为 None。将其更改为 All 解决了所有路由问题。

这是帖子中的示例虚拟主机配置:

<VirtualHost *:80>
    ServerAdmin youremail@yahoo.com
    ServerName yoursite.com
    ServerAlias www.yoursite.com
    DocumentRoot "/var/www/yoursite.com/public"
    <Directory /var/www/yoursite.com/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

【讨论】:

【参考方案2】:

是否在新服务器上启用了 mod_rewrite?

a2enmod rewrite

【讨论】:

【参考方案3】:

您应该尝试http://localhost/laravel/public/index.php/test,这应该可以。另外你应该考虑使用 nginx 作为服务器,它比 apache 更灵活。

在上面的 http 链接中,laravel 是你的 laravel 目录

【讨论】:

那也行得通。它没有去测试“路线”,而是去搜索不存在的测试“目录”。

以上是关于从 xampp 移动到 apache 2.4.7 后,Laravel 路由返回 404。 mod_rewrite aur htaccess 或缺少 apache 设置?的主要内容,如果未能解决你的问题,请参考以下文章

在 ubuntu 13.10 上从 XAMPP 移动到 LAMP 后 htaccess 不起作用(在 apache linux 服务器中启用 htaccess)

DocumentRoot 没有改变,从 Apache2 2.2.22 更新到 2.4.7

将 wordpress 从 xampp 移动到 xampp

将我的网站从 XAMPP 上传到 Apache 公共主机

XAMPP -> Apache 没有启动

由于端口无法运行 XAMPP?