Heroku 403 禁止错误

Posted

技术标签:

【中文标题】Heroku 403 禁止错误【英文标题】:Heroku 403 Forbidden Error 【发布时间】:2016-11-28 02:36:24 【问题描述】:

我部署了一个 php 应用程序,当我点击 url 时,我收到以下错误:

Forbidden

You don't have permission to access / on this server.

我猜它试图进入 app/ 目录但它不能。


我的项目结构:

my-project
|
|-> app/
|-> public/ (index.php inside here that takes care of routing)
Procfile
composer.json
etc.

日志显示的内容:

Jul 24 12:44:08 cryptic-beyond-39147 app/web.1:  [Sun Jul 24 19:44:07.846582 2016] [autoindex:error] [pid 99:tid 139960748263168] [client 10.179.164.130:28253] AH01276: Cannot serve directory /app/: No matching DirectoryIndex (index.php,index.html,index.htm) found, and server-generated directory index forbidden by Options directive 
Jul 24 12:44:08 cryptic-beyond-39147 app/web.1:  10.179.164.130 - - [24/Jul/2016:19:44:07 +0000] "GET / HTTP/1.1" 403 209 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36 
Jul 24 12:44:13 cryptic-beyond-39147 heroku/router:  at=info method=GET path="/" host=cryptic-beyond-39147.herokuapp.com request_id=9b5e81de-440b-4001-90a4-bc94ee891d3c fwd="89.210.178.134" dyno=web.1 connect=0ms service=1ms status=403 bytes=373 

过程文件

web: vendor/bin/heroku-php-apache2 public/

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

    AddType 'text/css; charset=UTF-8' css

</IfModule>

【问题讨论】:

【参考方案1】:

嗯嗯,所以我找到了解决方案。

我的 Procfile 有一个 .txt 扩展名(所以 Procfile.txt),而它只需要是 Procfile。

退出一个愚蠢的错误,但我认为我应该将答案留在这里以供将来参考。也许这会节省其他人的时间。

【讨论】:

如果您仍然遇到此问题,文件名也区分大小写。 Procfile 不是 procfile 花了 2 个小时才弄清楚这一点。不要做我 感谢您的回复 @RaymondAtivie 评论帮助了我。出于某种原因,我认为该文件名为 Profile!【参考方案2】:

我也遇到了同样的问题,因为我在根文件夹中没有任何 index.php 文件,所以我没有得到任何东西,导致该错误。如果您有同样的问题,那么在 heroku 应用程序 url 之后输入您的主页 php 文件。例如 - app/custom.php 。

【讨论】:

【参考方案3】:

非常奇怪的错误! Procfile 对我来说不是问题的原因。

由于某种原因,当我在根文件夹中创建了一个名为“app”的空目录时,它已修复。

【讨论】:

【参考方案4】:

我也有类似的问题:

在我的 index.php 中,我使用的是 include_once('index.html')

改成header('Location: /index.html') 就可以了。

注意 index.php 和 index.html 都在根目录下。

【讨论】:

【参考方案5】:

一个真正、简单、小巧的解决方案:

过程文件

名称。我将问题命名为 ProcFile,将 ProcFile 重命名为 Procfile 只有首字母大写。

【讨论】:

以上是关于Heroku 403 禁止错误的主要内容,如果未能解决你的问题,请参考以下文章

如何解决安装IIS时出现HTTP错误403禁止访问?

HTTP 错误 403.9 - 禁止访问:连接的用户过多

删除操作返回错误:出现意外错误(类型=禁止,状态=403)。禁止的

得到403禁止错误[重复]

装完iis后提示403禁止访问是怎么回事

收到 403 禁止错误。客户端身份验证方案“匿名”禁止 HTTP 请求