我的应用程序(/.htaccess
)中有一条规则,用于设置访问该网站的htpassword。我们需要在远程服务器上使用它,因为我们不希望除了我们以外的任何人看到它。
但是,在本地服务器上,我不想处理htpassword乱七八糟。是否有任何方法可以使规则只有在域不是“localhost”或类似的东西时才有效?
我使用PHP作为后端语言,所以如果有一种方法可以用PHP解决它,那就太好了。
感谢您提前提供任何帮助。
修改 - 违规代码:
authtype basic
authgroupfile /dev/null
authuserfile /path/to/htpassword
authname "Secure Area"
require user username
答案 0 :(得分:2)
http://httpd.apache.org/docs/current/howto/auth.html#satisfy
AuthType Basic
AuthName intranet
AuthUserFile /www/passwd/users
AuthGroupFile /www/passwd/groups
Require group customers
Order allow,deny
Allow from internal.com
Satisfy any
答案 1 :(得分:0)
RewriteCond %{HTTP_HOST} your_remote_hostname
在RewriteRule
行之前添加该条件(显然用您的主机名替换相关部分)。
答案 2 :(得分:0)
您可以使用require指令:
要求全部授予 无条件允许访问。要求全部拒绝 无条件拒绝访问。需要env env-var [env-var] ... 仅当设置了一个给定的环境变量时才允许访问。需要方法http-method [http-method] ... 仅允许对给定的HTTP方法进行访问。需要expr表达式 如果expression的计算结果为true,则允许访问。
mod_authz_user提供的一些允许的语法, mod_authz_host和mod_authz_groupfile是:
Require user userid [userid] ... Only the named users can access the resource. Require group group-name [group-name] ... Only users in the named groups can access the resource. Require valid-user All valid users can access the resource. Require ip 10 172.20 192.168.2 Clients in the specified IP address ranges can access the resource.
authtype basic
authgroupfile /dev/null
authuserfile /path/to/htpassword
authname "Secure Area"
require user username
require ip 10.10.10.10