如果页面是 Laravel 中的目录列表,则重定向到主页

Redirect to homepage if page is a directory listing in Laravel

如果用户所在的页面是目录列表,我希望能够将用户重定向(到 404 页面或返回主页),如下所示:

这是我的 .htaccess 文件:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ / [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Options +FollowSymLinks
RewriteEngine On

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

Laravel 可以吗?我知道您可以重定向到 app/Exceptions/Handler.php 文件中的特定页面,以防出现特定错误,例如 404 或 500。也许可以使目录生成错误,并使 handler.php 做重定向?

您可以使用

进行 php 重定向
    <?php
    // PHP permanent URL redirection test
    header("Location: http://www.rapidtables.com/web/dev/php-redirect.htm", true, 301);
    exit();
    ?>

你看过吗:This tutorial?

严格来说这不是一个 Laravel 问题,目录列表由 Apache 直接提供,Laravel 它甚至没有加载。

作为一个简单的解决方法,您可以在目录中放置一个最低限度的 index.html 并设置一个用于重定向的元数据,即:

<meta http-equiv="refresh" content="0;URL=http://www.example.com/example">

更好的解决方案是正确配置 Apache,您可以找到一些信息 here