如何使用htaccess和htpasswd密码保护ModX网站中的资源?

use*_*416 5 php apache .htaccess modx .htpasswd

我们正在尝试在ModX安装中保护几个不同的资源.当前.htaccess代码如下(不包括所有ModX内容)

AuthName "Dialog prompt"
AuthType Basic
AuthUserFile /var/www/vhosts/mywebsite.co.uk/.htpasswd

<FilesMatch ^index.php\?q=71$>
    require valid-user
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

该练习的目的是保护以下资源:

我尝试过LocationsMatch,Locations,Files和Filesmatch的各种组合,但无法使其工作.

先感谢您

use*_*416 0

这就是完整的解决方案:

如果其他人需要知道,我创建了一个名为“passwordprotect”的代码片段,并将其放在页面顶部:[[passwordprotect]]。然后我输入以下代码(上述响应的改编):

<?php

if(isset($_SERVER['PHP_AUTH_USER']) && ($_SERVER['PHP_AUTH_USER']=='user') &&     ($_SERVER['PHP_AUTH_PW']=='password'))
{
    echo 'You are successfully logged in.';
} else {
    header('WWW-Authenticate: Basic realm="Protected area"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
}
Run Code Online (Sandbox Code Playgroud)

编辑:如果您发现这有时有效有时无效,这可能是因为使用 [[passwordprotect]],modx 会缓存该片段。我通过 [[!passwordprotect]] on Revolution 获得了更好的成功。我认为代码是 Evolution 上的 [!passwordprotect!]。感叹号仅表示不缓存该片段。希望对某人有帮助!