Laravel 5 需要索引.php使用 Apache 虚拟主机

2022-08-30 17:43:23

当我加载非根页面时,该页面不会在没有索引的情况下加载.php路由之前。我得到的错误:

 Not Found

 The requested URL /login was not found on this server.

 Apache/2.4.7 (Ubuntu) Server at mydomain.com Port 80

首先,我有一个虚拟主机文件,其中包含:

//also tried adding DirectoryIndex here before <directory>
<directory /var/www/mydomain.com>
    DirectoryIndex index.php
    AllowOverride ALL
</directory>

和一个.htacces在我的公共场合与:

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

我在同一台服务器上有另一个具有相同.htaccess和appache配置的域,它工作正常。我也重新启动了apache。如果我在我的索引上使用phpinfo.php/路由页面,我会在加载的模块上看到:

mod_rewrite mod_setenvif 

当使用xampp运行网站本地时,一切正常。几个小时,我现在正在尝试,但我无法修复它或找到任何错误(日志为空)或我还没有尝试过的任何解决方案。

编辑:

我在数字海洋VPS上使用Ubuntu Ubuntu 14.04 x64。我尝试再次打开和关闭它(如建议的那样)。PHP 版本 5.5.9-1ubuntu4.9.我按照本教程配置了所有内容(Direcoty部分除外)。我更改了apache日志的位置和文件错误.log在给定的目录上创建,但其中没有错误。

我目前的appache配置是:this(我已经三重检查了域名所在的白色部分)。

当我运行apache2ctl -t D时,我得到DUMP_VHOSTS

enter image description here

这对我来说看起来很好,也尝试禁用默认配置,但它没有帮助。

注意:我已经用 mydomain.com 替换了我的真实域名,实际上我在这些地方使用我的真实域名。

思想我如何确定conf文件im编辑是域正在使用的那个?


答案 1

这是 Laravel 5 的正确替代 htaccess 规则,建议在默认值不起作用时使用:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

我相信它起着重要作用,因为它们的行为就像一个符号链接。Options +FollowSymLinksDirectotyIndex

还要检查 /app/config/app.php 以确保您尚未将 Config('app.url') 设置为包含索引.php。

如果您在子目录中安装了laravel,请参阅以下内容:如何删除url生成的laravel中的“public/index.php”?


答案 2

您是否尝试过将其全部关闭(关机),然后再次打开?

如果一切都像你说的那样,它应该有效。我会尝试重新启动,看看它是否会改变任何东西。

如果没有,请使用您正在使用的操作系统进行更新。


推荐