Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 请求超出了10个内部重定向的限制laravel 5.5_Php_Laravel_.htaccess_Redirect - Fatal编程技术网

Php 请求超出了10个内部重定向的限制laravel 5.5

Php 请求超出了10个内部重定向的限制laravel 5.5,php,laravel,.htaccess,redirect,Php,Laravel,.htaccess,Redirect,我上传新的laravel 5.5项目时遇到问题。当我更改服务器上public_html文件夹中的htaccess时,它会不断重定向。然而,这个问题在Laravel5.0上并不存在。以下是我从public_html文件夹获得的htaccess: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule> 重新启动发动机 重写规则^(.*)$

我上传新的laravel 5.5项目时遇到问题。当我更改服务器上public_html文件夹中的htaccess时,它会不断重定向。然而,这个问题在Laravel5.0上并不存在。以下是我从public_html文件夹获得的htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On

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

重新启动发动机
重写规则^(.*)$public/$1[L]
这是公用文件夹中的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>

选项-多视图-索引
重新启动发动机
#句柄授权头
RewriteCond%{HTTP:Authorization}。
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
#如果不是文件夹,则重定向尾部斜杠。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_URI}(+)/$
重写规则^1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]

关于如何解决此问题,有什么建议吗?

除了在文档根目录中放置Laravel项目不是一个好主意之外,根目录中的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>

重新启动发动机
#为中的所有文件伪造404/
RewriteCond%{REQUEST_FILENAME}-f
重写规则^/?[^/]+$-[R=404,L]
#保护重写循环:排除/公开
重写条件%{REQUEST_URI}!^/?公共(/.*)$
重写规则^(.*)$/public/$1[L]

您是否将您的laravel应用程序发布到共享主机?是的,这就是为什么我需要在您的
public\u html/public/.htaccess
文件上的public\u htmlTry中的第一个htaccess文件更改
RewriteRule^/public/index.php[L]
无需担心,无新错误,只是不起作用。好:D。把你所有的Laravel代码放在
public\uHTML
目录下是很危险的。有人可以直接查看您的.env文件。