Laravel 得到 500 内部服务器错误

Posted

技术标签:

【中文标题】Laravel 得到 500 内部服务器错误【英文标题】:Laravel get 500 internal server error 【发布时间】:2014-08-05 20:56:04 【问题描述】:

我有关于共享托管的 laravel 项目,我的结构应用程序是

/home/username

`->fontEndApps ( my laravel apps )`

`->backendApps ( my laravel apps )`

`->public_html`

在 public html 中我放了 index.php、htaccess 和 admin 文件夹,在 admin 文件夹中有 index.php 和 htaccess

后端工作正常,但是当我尝试访问 www.domain.com/segment1 或 www.domain.com/segment1/segment2 时,前端总是出现 500 内部服务器错误,这是我的前端 htaccess 文件和后端

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options +FollowSymLinks
    </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>

请帮我解决这个问题

【问题讨论】:

注释掉RewriteRule ^(.*)/$ /$1 [L,R=301]这一行并重新测试 【参考方案1】:

确保您已将 Vendor 文件夹上传到服务器,它可能导致 500 错误

【讨论】:

【参考方案2】:

我必须在 .htaccess 中评论这一行,它才有效:

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

【讨论】:

【参考方案3】:

经过几个小时的搜索,这解决了问题:

确保 /public_html 中的 index.php 具有 644 权限(我的是 664,这是内部服务器错误的原因)。

【讨论】:

【参考方案4】:

您的问题在于 .htaccess 文件。在 goDaddy 中,他们不会设置 RewriteBase,因此您必须在 .htaccess 文件中提供它。完整的代码应该是这样的。这适用于我的 laravel 投资组合site

 <Limit GET POST PUT DELETE>
#For REST support
       Allow from all
 </Limit>

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

    RewriteEngine On
    RewriteBase / # <------------ This one you missed

    #Just to redirect to www.site.com when only site.com comes
     RewriteCond %HTTP_HOST !^www\. [NC]
     RewriteRule ^(.*)$ http://www.%HTTP_HOST [R=301,L]
    #end of codes

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

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

【讨论】:

嘿,你把这个放在哪里了?在公共文件夹中,还是在根目录中? @Ned 在public 文件夹中。 Apache 查看公用文件夹。 在使用 php7.1 的 1and1 主机上与 Laravel 5.5 非常配合

以上是关于Laravel 得到 500 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:为啥我的 ajax 请求返回“500(内部服务器错误)”?

Laravel 5.7 ajax 请求 500(内部服务器错误)

Laravel 护照 500 内部服务器错误

GET 500(内部服务器错误)laravel/js

内部服务器错误 500 Laravel 5.4 AJAX

Laravel 5:Ajax Post 500(内部服务器错误)错误