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

从xampp迁移到apache 2.4.7后,Laravel路由返回404。mod_rewrite或htacess或缺少apache设置?,apache,.htaccess,mod-rewrite,laravel,laravel-routing,Apache,.htaccess,Mod Rewrite,Laravel,Laravel Routing,一个简单的“测试”路径不断返回404 Route::get('test', function() { return View::make('test'); }); 无论是localhost/test,还是vhost.dev/test,甚至当使用我们的sub.domain.com/test并将DNS指向特定的笔记本电脑时,该路由都不起作用 我们使用的是XAMPP,但在得知XAMPP不适合生产环境后,我们转而使用apache。因此,我在一台win7笔记本电脑上安装了Apache2.4.7、

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

Route::get('test', function() {
    return View::make('test');
});
无论是localhost/test,还是vhost.dev/test,甚至当使用我们的sub.domain.com/test并将DNS指向特定的笔记本电脑时,该路由都不起作用

我们使用的是XAMPP,但在得知XAMPP不适合生产环境后,我们转而使用apache。因此,我在一台win7笔记本电脑上安装了Apache2.4.7、php和各种sqlsrv mod。在迁移到Apache之后,所有路由都停止工作,即使使用相同的目录结构

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

如果使用启用了mod_rewrite,则会对我进行测试。这就是答案,所以我想它是有效的

Apache/2.4.7(Win32)PHP/5.4.24

mod_重写可用

htaccess

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

选项+FollowSymLinks
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]

你应该试试
http://localhost/laravel/public/index.php/test
,这应该行得通。此外,您应该考虑使用NGIX作为服务器,这比Apache更灵活。

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

问题是因为在Apache中将
AllowOverride
设置为
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>

服务器管理员youremail@yahoo.com
ServerName yoursite.com
ServerAlias www.yoursite.com
DocumentRoot“/var/www/yoursite.com/public”
选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融

新服务器上是否启用了mod_rewrite

a2enmod rewrite

我已经尝试安装一个全新的laravel副本,完全默认。我添加了上面的测试路径,但仍然遇到同样的问题,所以我想可以肯定地说这是mod_重写或apache设置问题?有人能告诉我如何进行故障排除吗?localhost/index.php/test工作正常吗?没有。请看下面我的答案。这也行得通。它没有转到测试“路由”,而是搜索不存在的测试“目录”。