仅在远程服务器上为PHP应用程序设置.htaccess规则?

时间:2011-12-24 01:33:13

标签: php apache .htaccess

我的应用程序(/.htaccess)中有一条规则,用于设置访问该网站的htpassword。我们需要在远程服务器上使用它,因为我们不希望除了我们以外的任何人看到它。

但是,在本地服务器上,我不想处理htpassword乱七八糟。是否有任何方法可以使规则只有在域不是“localhost”或类似的东西时才有效?

我使用PHP作为后端语言,所以如果有一种方法可以用PHP解决它,那就太好了。

感谢您提前提供任何帮助。

修改 - 违规代码:

authtype basic
authgroupfile /dev/null
authuserfile /path/to/htpassword
authname "Secure Area"
require user username

3 个答案:

答案 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