Laravel 和 htaccess 的重定向 Url 问题

我在本地 xampp 中为我的项目创建虚拟主机。网址: http: //kooltech-us.com/

我在公共文件夹(Laravel)中有文件夹名称 admin (如下图所示)。

https://img4.mukewang.com/65193b1c00013d1001910437.jpg

在我的项目中我的管理员登录网址 http://localhost/admin/login

我点击 urlhttp://localhost/admin/login进入管理员登录页面.. 没关系.. 但是当我点击这个http://localhost/admin.. 它带我到 public/admin 文件夹。这意味着向我显示公共目录列表。

https://img.mukewang.com/65193b29000193be04750469.jpg

为了防止访问目录列表或 public/admin,我在 .htaccess 文件中写入Options - Indexes代码。一般来说,它会给我 403 错误(禁止访问!)。是工作。

https://img4.mukewang.com/65193b330001dffd03080104.jpg

我正在寻找当我点击网址时http://localhost/admin它会带我去的 http://localhost/admin/login

笔记:

  1. 我没有更改文件夹结构。(Laravel 默认文件夹结构存在)。

  2. 我在 .htacees 文件中只写了一行代码: Options - Indexes。一般来说,这会给我 403 错误(禁止访问!)。

  3. 版本“laravel/framework”:“5.8.*”

我在 web.php 中编写但它不起作用..

Route::get('/admin', function () {
  return redirect('/admin/login');
});

如果需要更多解释请评论..


慕后森
浏览 75回答 1
1回答

慕姐4208626

要修改 .htaccess,您需要在 .htaccess 中添加类似的内容,这会将所有请求从 /admin 重定向到 /public,但仍显示为 /admin,这将允许您的重定向正常工作:web.php-RewriteRule admin /public [L]&nbsp;这会给你:-<IfModule mod_rewrite.c>&nbsp; &nbsp; <IfModule mod_negotiation.c>&nbsp; &nbsp; &nbsp; &nbsp; Options -MultiViews -Indexes&nbsp; &nbsp; </IfModule>&nbsp; &nbsp; RewriteEngine On&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; # Handle Authorization Header&nbsp; &nbsp; RewriteCond %{HTTP:Authorization} .&nbsp; &nbsp; RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]&nbsp; &nbsp; # Redirect Trailing Slashes If Not A Folder...&nbsp; &nbsp; RewriteCond %{REQUEST_FILENAME} !-d&nbsp; &nbsp; RewriteCond %{REQUEST_URI} (.+)/$&nbsp; &nbsp; RewriteRule ^ %1 [L,R=301]&nbsp; &nbsp; # Send Requests To Front Controller...&nbsp; &nbsp; RewriteCond %{REQUEST_FILENAME} !-d&nbsp; &nbsp; RewriteCond %{REQUEST_FILENAME} !-f&nbsp; &nbsp; RewriteRule admin /public [L]&nbsp;&nbsp; &nbsp; RewriteRule ^ index.php [L]&nbsp; &nbsp;&nbsp;</IfModule>但是我仍然觉得这是不好的做法,并且按照 @flakerimi 的建议更改目录结构将是一个更好的解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP