Php 当用户未登录时,Laravel强制重定向到公用文件夹

Php 当用户未登录时,Laravel强制重定向到公用文件夹,php,laravel,.htaccess,laravel-5,laravel-5.6,Php,Laravel,.htaccess,Laravel 5,Laravel 5.6,我将此规则添加到.htaccess中,以将所有请求重定向到公用文件夹: RewriteRule ^(.*)$ /public/$1 [L,NC] 通过这种方式,我可以从URI中删除公共单词,尽管mydomain.com/home和mydomain.com/public/home都可以使用 我现在实现了基本的用户身份验证,但实际情况是: 如果用户请求mydomain.com/admin但未登录,Laravel会将其重定向到mydomain.com/public/login,而不是mydomain

我将此规则添加到.htaccess中,以将所有请求重定向到公用文件夹:

RewriteRule ^(.*)$ /public/$1 [L,NC]
通过这种方式,我可以从URI中删除公共单词,尽管mydomain.com/home和mydomain.com/public/home都可以使用

我现在实现了基本的用户身份验证,但实际情况是:

如果用户请求mydomain.com/admin但未登录,Laravel会将其重定向到mydomain.com/public/login,而不是mydomain.com/login 当用户对自己进行身份验证时,Laravel将其重定向到mydomain.com/public/admin,而不是mydomain.com/admin 基于此,我猜Laravel在某处明确指出重定向必须在/public/whatever进行。我试图找出重定向帮助器的具体位置,但找不到它。我的问题是:

我的假设正确吗? 如果是,Laravel在哪里定义重定向必须在/public/which进行?在哪里可以找到重定向助手? 如果没有,为什么会出现第1点和第2点? 从

阿帕奇

该框架附带一个public/.htaccess文件,用于允许 没有index.php的URL。如果您使用Apache为您的Laravel服务 应用程序,请确保启用mod_重写模块

如果Laravel附带的.htaccess文件与Apache安装不兼容,请尝试以下方法:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

如果您的web主机不允许FollowSymlinks选项,请尝试将其替换为Options+symlinksFownerMatch。

我没有得到它,可能是因为我不太了解FollowSymlinks。在public/.htaccess中有Options+FollowSymLinks和没有Options+FollowSymLinks有什么区别?这样我就可以从URI中有public的URI中去掉public单词了?public应该是服务器的文档根目录,从未在my Laravel中看到公用文件夹弹出projects@kerbholz我一直认为我不能将公用文件夹设置为共享主机上的文档根目录;在你的评论之后,我终于尝试了,这不仅是可能的,而且太容易了。谢谢,很高兴它起作用了