sam*_*sam 3 apache authentication .htaccess .htpasswd
香港专业教育学院有一个网站,我试图设置.htaccess / .htpasswd密码限制,但同时允许具有特定IP地址的任何用户访问。
到目前为止,我已经在我的.htaccess文件中按以下方式实施了此操作,但是出于某种原因,如果我访问了该站点,无论它允许从哪个IP地址访问该站点,如果我注释掉了该行order deny,allow上方的Allow from 192.87.22.18行,都可以使用密码保护可以,但是即使从192.87.22.18IP进行访问,也会要求所有人提供IP(注意-不是我的真实IP)
(由于明显的原因,我没有发布我的.htpasswd文件,但这是1行,其中包含1个哈希密码)
有任何想法吗 ?
<Files ~ "^\.(htaccess|.htpasswd)$">
deny from all
</Files>
DirectoryIndex index.php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.example\.co\.uk)(:80)? [NC]
RewriteRule ^(.*) http://example.example.co.uk/$1 [R=301,L]
order deny,allow
<Files ~ "^\.(htaccess|.htpasswd)$">
deny from all
</Files>
AuthType Basic
AuthName "Please enter your ID and password"
AuthUserFile /var/www/vhosts/example.co.uk/subdomains/example/httpdocs/.htpasswd
AuthGroupFile /dev/null
require valid-user
order deny,allow
Allow from 192.87.22.18
# satisfy any
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}index.php [L]
Run Code Online (Sandbox Code Playgroud)
经过反复试验,我最终使用了以下适用于apache 2.0的内容,网址为:https : //perishablepress.com/htaccess-password-protection-tricks/
在上面的文章中,他们包装了<IfModule mod_auth.c>
导致代码无法运行的代码块(因为我猜if块在此服务器上等于false),因此我将其删除。
# password protect excluding specific ip
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
AuthType Basic
Require valid-user
Order Deny,Allow
Deny from all
Allow from 111.222.333.444
Satisfy Any
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
697 次 |
| 最近记录: |