我尝试在Cpanel共享主机上托管Laravel 9应用程序。但是,即使我尝试访问https://example.com/public
,应用程序仍不断返回以下错误。下面是我的.htaccess根文件;它曾经可以完美地与Laravel 8一起工作,但现在不能再工作了。我的问题是我想只使用没有X1 M1 N1 X或X1 M2 N1 X的域(Eidogg.,www.example.com)访问我的应用程序example.com。
内部服务器错误500
.htaccess网站
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
2条答案
按热度按时间8zzbczxx1#
!^public
上缺少斜杠前缀,因此此 condition 将始终成功并重复重写请求,可能导致重写循环(即500错误)。应该是这样的:
然而,您还应该在
/public
子目录中有另一个带有mod_rewrite指令的.htaccess
文件,用于管理通过Laravel应用程序的路由,这应该可以防止重写循环。m3eecexj2#
如何在laravel 9中从url中删除public
重写引擎打开
重写条件% {请求文件名}-d [OR]重写条件% {请求文件名}-f重写规则^^$1 [N]
重写条件% {请求URI}(.\w +$)[NC]重写规则^(. *)$公共/$1
重写条件% {请求文件名}! -d重写条件% {请求文件名}! -f重写规则^server.php
$uri =网址解码(解析网址($_ SERVER ['请求网址'],PHP网址路径));
//此文件允许我们从//内置PHP Web服务器模拟Apache的"mod_rewrite"功能。这提供了一种方便的方法来测试Laravel//应用程序,而无需在此处安装"真正的" Web服务器软件。if($uri!=='/'&& file_exists(DIR.'/public'. $uri)){return false;}
需要一个目录。"/public/index.php ";