Laravel问题加载资产400错误请求

Posted

技术标签:

【中文标题】Laravel问题加载资产400错误请求【英文标题】:Laravel problem loading assets 400 bad request 【发布时间】:2019-05-31 19:19:38 【问题描述】:

我有一个在本地主机上完美运行的 Laravel 网站,但是当我部署它时,从公共目录加载资产或其他文件时出现问题。

错误请求 您的浏览器发送了此服务器无法理解的请求。

这是我的 apache 虚拟主机:

<VirtualHost IP:8181>
    ServerName my-domain.com
    ServerAlias www.my-domain.com
    ServerAdmin info@my-domain.com
    DocumentRoot /home/user/public_html/laravel/public
    UseCanonicalName Off
    ScriptAlias /cgi-bin/ /home/user/public_html/cgi-bin/

    ErrorLog /usr/local/apache/domlogs/my-domain.com.error.log

    <IfModule mod_setenvif.c>
        SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on
    </IfModule>

    <IfModule mod_userdir.c>
        UserDir disabled
        UserDir enabled user
    </IfModule>

    <IfModule mod_suexec.c>
        SuexecUserGroup user user
    </IfModule>

    <IfModule mod_suphp.c>
        suPHP_UserGroup user user
        suPHP_ConfigPath /home/user
    </IfModule>

    <IfModule mod_ruid2.c>
        RMode config
        RUidGid user user
    </IfModule>

    <IfModule itk.c>
        AssignUserID user user
    </IfModule>

    <Directory "/home/user/public_html">
        AllowOverride All
    </Directory>

</VirtualHost>

这是 apache 日志:

请求 GET \@backend HTTP/1.0 中的 URI 无效

有很多 laravel 站点,它们都是正常的,但我对这个有问题。我无法弄清楚这个问题。 我的vHost.conf 没问题,我的.env 文件没问题,但是我无法加载css / js / robots.txt / 等任何资产... (保存在公共目录中的任何内容)强>。

你有什么想法吗?

【问题讨论】:

资产目录的权限设置是什么? 是 755。CWP 自动管理权限@Iftikharuddin 我认为问题不在于缺少文件或路径错误。您将得到 440 或 500。400 错误表示请求格式错误。您的请求 \@backend 看起来很奇怪。此 URI 中有一个反斜杠 \ 和一个 @。这可能在本地 Windows 上的某些测试中有效,但是您确定托管网站允许吗?您是否尝试过对反斜杠进行编码,例如 GET %5C@backend ? 【参考方案1】:

我想改变

<Directory "/home/user/public_html">
   AllowOverride All
</Directory>

<Directory "/home/user/public_html/laravel/public">
   AllowOverride All
</Directory>

可能有帮助吗?

【讨论】:

【参考方案2】:

将您的文档根目录更改为/home/user/public_html

【讨论】:

以上是关于Laravel问题加载资产400错误请求的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Paypal IPN 与 localtunnel 随机 400 错误请求

Larave中CSRF攻击

通过 HTTP 加载 HTTPS 资产

Steam 发布请求 - 加载资源失败:服务器响应状态为 400(错误请求)

Laravel 5 从 PayPal API 捕获 400 响应

使用 laravel 验证检查唯一的日期/时间