htaccess:只为一个域执行[某些代码行],而不执行其他域

时间:2010-04-07 22:25:42

标签: apache .htaccess basic-authentication

假设我有一个由“dev.server”和“server.site.com”共享的htaccess文件。

第一个域应该允许所有用户不受质疑地访问它(它只存在于我的本地开发服务器上)。

第二个域我想用Apache(不是数据库)验证用户。

验证用户的代码是:

AuthType Basic
AuthName "Server Admin"
AuthUserFile "/path/to/passwd"
require valid-user

我不能做的事情是让这4行只在域名为“server.site.com”时才有意义。 我该怎么做?

我搜索了类似<IfEnv HTTP_HOST "site.server.com">但没有运气的东西。

2 个答案:

答案 0 :(得分:2)

这似乎有效,但仍然需要对它进行一些测试。

Order Deny,Allow
Deny from all

SetEnvIf Host domain.for.no.auth dev
Allow from env=dev

AuthUserFile .pwd
AuthType Basic
AuthName MySite
Require valid-user
Satisfy Any

答案 1 :(得分:0)

据我所知,这不能在.htaccess文件中完成。您必须将其放入DirectoryVirtualHost部分,这两部分都无法在.htaccess文件中使用。

您必须在两个单独的文件中定义它,或者直接在VirtualHost部分的服务器配置中定义它。