Fab*_*aux 7 authentication .htaccess apache-2.2
我有一个要修改的生产站点(从法语翻译成英语)。修改后的部分将放置在domain.com/en
URL 位置,我想在修改期间只使用基本的 HTTP 身份验证来保护这部分。
我希望拥有相同的行为,就好像我en
在我的 Web 根文件夹中有一个目录一样,.htaccess
在这个目录中有一个文件来实现基本身份验证。不幸的是,我不能这样做,因为该站点在 Wordpress 上运行并使用重写规则,所以我无法在en
不绕过 Wordpress 的情况下创建目录。
我应该.htaccess
在根目录中放入哪些指令才能仅为该/en
位置启用基本身份验证?我尝试使用该<Location /en></Location>
块,但它会产生 500 错误,所以我认为该块仅在 apache 配置文件中受支持。
@Gregg_Leventhal 通过使用环境变量给了我解决方案。但是我使用的逻辑与他的答案中使用的逻辑完全相反。为了完整起见,这里是仅对 URL 进行身份验证的代码/en
:
#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
Run Code Online (Sandbox Code Playgroud)
小智 4
我明白了...下面的代码将仅在回调目录上禁用身份验证,也许您可以修改此逻辑,以便它仅在所需目录上启用身份验证,或者在名称与您希望的名称不匹配的所有目录上禁用身份验证保护。
# 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17197 次 |
最近记录: |