我有一个生产网站,我想修改(从法文翻译成英文)。 修改过的部分将被放置在domain.com/en URL位置,我想在修改过程中只使用基本的HTTPvalidation来保护这个部分。
我想有相同的行为,如果我有我的Web根文件夹中的一个en目录,并在此目录上执行基本身份validation的.htaccess文件。 不幸的是,我不能这样做,因为该网站在Wordpress上运行,并使用重写规则,所以我不能不绕过Wordpress创build一个en目录。
我应该在根目录下的.htaccess中插入什么指令来启用仅用于/en位置的基本身份validation? 我尝试使用<Location /en></Location>块,但它产生了500错误,所以我想这个块只在Apacheconfiguration文件中被支持。
我看到…下面的代码将禁用只有callback目录auth,也许你可以修改这个逻辑,以便它只启用所需目录的身份validation,或禁用所有名称不符合你想要的名字的authentication保护。
# set an environment variable "noauth" if the request starts with "/callbacks/" SetEnvIf Request_URI ^/callbacks/ noauth=1 # the auth block AuthName "Please login." AuthGroupFile /dev/null AuthType Basic AuthUserFile /xxx/.htpasswd #Here is where we allow/deny Order Deny,Allow Satisfy any Deny from all Require valid-user Allow from env=noauth
@Gregg_Leventhal通过使用环境variables给了我解决scheme。 但是我使用的逻辑与他答案中使用的逻辑完全相反。 为了完整起见,以下是仅针对URL /en请求身份validation的代码:
#set an environtment variable "auth" if the request starts with "/en" SetEnvIf Request_URI ^/en auth=1 AuthName "Please login to access english part" AuthType Basic AuthUserFile "/path/to/my/.htpasswd" # first, allow everybody Order Allow,Deny Satisfy any Allow from all Require valid-user # then, deny only if required Deny from env=auth