我正在为我的网站使用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提供一个简单的解决方案(维护模式除外),我也可以做到。
多谢指教!
答案 0 :(得分:0)
在您的routes.php(或根据版本的web.php)顶部尝试此操作
if (getenv('REMOTE_ADDR') != '192.168.6.3' && !\Request::is('/')) {
abort(404);
}
如果请求不是主屏幕并且IP地址不是我的IP地址,则显示404。