Php 自定义根文件夹的Laravel重定向问题
我的ISP不允许我的cpanel托管的laravel站点有一个自定义根文件夹,即laravel结构中的公用文件夹 这意味着我不能让服务器将/public\u html/public作为根目录。它必须始终是/public\u html 根据他们的指导,我设置了以下/public\u html/.htaccess规则,以使Laravel公用文件夹显示为根文件夹Php 自定义根文件夹的Laravel重定向问题,php,regex,laravel,.htaccess,laravel-5,Php,Regex,Laravel,.htaccess,Laravel 5,我的ISP不允许我的cpanel托管的laravel站点有一个自定义根文件夹,即laravel结构中的公用文件夹 这意味着我不能让服务器将/public\u html/public作为根目录。它必须始终是/public\u html 根据他们的指导,我设置了以下/public\u html/.htaccess规则,以使Laravel公用文件夹显示为根文件夹 RewriteEngine on RewriteCond %{HTTP_HOST} ^domain-name.com$ [NC,OR] Re
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain-name.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain-name.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
这或多或少有效,但并不完全有效。问题是,如果我在我的站点上请求一个带有结尾反斜杠的页面,那么页面url将以
www.domain-name.com/public/contact-us
而不是我所期望的
www.domain-name.com/contact-us
我想这一定是.htaccess的一个问题,但我尝试了各种排列,无法解决它。也许我错了,也许这是一些最终需要通过url检查后的Laravel重定向来修复的问题
我快发疯了,我真的很感激你的任何想法 为了安全起见,将整个应用程序放在公共html文件夹中是一个很大的危险信号。你必须非常非常小心你在这个文件夹内的权限。默认情况下,像.env、.git、缓存文件、私人上传等东西通常是可以下载的,是的,黑客会扫描这些东西 如果您可以将整个应用程序上载到cpanel主机的根目录,并将public重命名为public_html,或者如果无法删除public,则将其内容复制到现有public_html 然后,您可能需要修改您的laravel app index.php以将其用作公共路径 在index.php下: 加: 有了它,标准.htaccess应该可以正常工作,而不需要进行任何更改 希望有帮助
$app = require_once __DIR__.'/../bootstrap/app.php';
// set the public path to this directory
$app->bind('path.public', function() {
return __DIR__;
});