【问题标题】:request exceeded the limit of 10 internal redirects laravel 5.5请求超出了 10 个内部重定向 laravel 5.5 的限制
【发布时间】:2018-03-18 00:08:11
【问题描述】:

上传新的 laravel 5.5 项目时遇到问题。当我更改服务器上 public_html 文件夹中的 htaccess 时,它会不断重定向。然而,这个问题在 laravel 5.0 上不存在。这是来自 public_html 文件夹的我的 htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

这是公共文件夹中的 htaccess:

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

    RewriteEngine On

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

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

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

关于如何解决这个问题有什么建议吗?

【问题讨论】:

  • 您是否将您的 laravel 应用发布到共享主机?
  • 是的,这就是为什么我需要 public_html 中的第一个 htaccess 文件
  • 尝试将public_html/public/.htaccess文件上的RewriteRule ^ index.php [L]更改为RewriteRule ^ /public/index.php [L]
  • 没关系,没有新的错误,只是不起作用。
  • 好:D。将所有 Laravel 代码放在 public_html 目录中的任何方式都是非常冒险的。有人可以直接看到你的 .env 文件。

标签: php laravel .htaccess redirect


【解决方案1】:

除了将 Laravel 项目放在 Document Root 中确实不是一个好主意之外,您的 Root 目录中的 htaccess 文件也有问题。 另外,我至少会保护您的根文件夹中的所有文件不被直接访问:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Fake 404 for all files in /
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^/?[^/]+$ - [R=404,L]

    # Protect rewrite loop: exclude /public
    RewriteCond %{REQUEST_URI} !^/?public(/.*)?$
    RewriteRule ^(.*)$ /public/$1 [L]
</IfModule>

【讨论】:

    猜你喜欢
    • 2013-10-04
    • 1970-01-01
    • 2019-03-08
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2014-08-05
    • 2017-06-01
    相关资源
    最近更新 更多