【问题标题】:Laravel 5 - Internal Pages giving Not Found ErrorLaravel 5 - 内部页面给出未找到错误
【发布时间】:2017-10-19 12:53:23
【问题描述】:

实际上,我正在 Linode Server 上部署我的 laravel 5 应用程序。 我的客户在这种类型的路径中为我创造空间。

var/www/html/abcproject

我将我的 godaddy 域指向 abcproject 目录。

现在我已将所有 Laravel 5 文件上传到 abcproject 目录。

我的问题是,我的主页运行良好,但我的内部页面 正在给出 Not Fount Error。

假设当我尝试登录时出现以下错误。

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

其次,Laravel 5 URL 正在获取这样的 url。

假定的网址。 http://15.30.19.61/abcproject/index.php/registers

我不明白问题出在哪里。

当我尝试这种类型的 URL 时,我的项目运行良好。

http://example.com/index.php/ 但在这种情况下,我的 URL 重写不起作用,但项目正在运行,就像我可以登录、进入不同的页面、注销等一样。

我的 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]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

</IfModule>

谢谢

【问题讨论】:

  • 您应该将您的域指向“var/www/html/abcproject/public”目录而不是“var/www/html/abcproject”目录。
  • 也可能是 .htacces 问题
  • 在 Apache2 上启用 mod 重写。
  • mod 重写模块处于活动状态

标签: php laravel .htaccess laravel-5


【解决方案1】:

如果您从上述子文件夹中为您的 laravel 项目供电:

http://15.30.19.61/abcproject

您应该将其添加到 RewriteEngine On 下的 .htaccess 文件中。

RewriteBase /abcproject

【讨论】:

  • 其次我创建了两个 .htaccess 文件 - 1. 在根目录和 2. 在公用文件夹上。那么我需要改变哪个?两者或在公共 htaccess 文件中
  • 你的 index.php 在哪里?根或公共?
  • 在根目录下 - 我已将 server.php 文件重命名为 index.php
  • 在 urs 这样的情况下,我通常做的是将 index.php 和 .htaccess 文件从公共目录移动到根目录。然后我修改 index.php 文件并将引导程序包含从 /../bootstrap 更改为 /bootstrap 然后将 RewriteBase /projectName 添加到 .htaccess ,然后 laravel 在 apache 中的子文件夹上工作
【解决方案2】:

我在 LAMP 配置方面也遇到了类似的问题,我通过启用 apache 的重写规则来解决。如果需要一些细节,那么可以参考下面的博客笔记 http://ankgne.com/post/setting-up-digital-ocean-for-laravel-application

  • 第 1 步:使用 sudo a2enmod rewrite 启用 mod 重写
  • 第 2 步:允许 laravel .htaccess(在 laravel 页面的公共目录中) 应用重写规则的文件

     sudo vi /etc/apache2/sites-available/000-default.conf 
    并添加以下行

    注意:将“/var/www/html”改为“laravel公用文件夹路径”

选项索引 FollowSymLinks MultiViews 允许覆盖所有 要求所有授予 . . .

第 3 步:使用重新启动 Web 服务器

 sudo systemctl restart apache2 

【讨论】:

    猜你喜欢
    • 2013-07-20
    • 1970-01-01
    • 2019-11-20
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2015-10-09
    • 2016-12-20
    相关资源
    最近更新 更多