.htaccess拒绝除Laravel上的一个文件以外的所有内容

时间:2018-07-11 09:29:55

标签: php laravel .htaccess

我正在为我的网站使用Laravel平台。我要实现的是仅显示一个包含有关该网站的信息的网页。所有其他页面仍处于开发模式,因此我希望它们使用.htaccess保护。

这是我的.htaccess文件,不幸的是,它要求每个页面输入密码:

AuthName "myweb"
AuthUserFile "/home/passwd"
AuthType Basic
require valid-user

<Files "*">
Require valid-user
</Files>

<Files "start.html">
Allow from all 
Satisfy Any
</Files>

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

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

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

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

如果.htaccess有一些解决方案,那会很棒,但是如果Laravel提供一个简单的解决方案(维护模式除外),我也可以做到。

多谢指教!

1 个答案:

答案 0 :(得分:0)

在您的routes.php(或根据版本的web.php)顶部尝试此操作

if (getenv('REMOTE_ADDR') != '192.168.6.3' && !\Request::is('/')) {
    abort(404);
}

如果请求不是主屏幕并且IP地址不是我的IP地址,则显示404。