5

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>

演習の目的は、次のリソースを保護することです。

LocationsMatch、Locations、Files、Filesmatchのさまざまな組み合わせを試しましたが、機能しません。

前もって感謝します

4

3 に答える 3

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;
}

編集: これが機能する場合と機能しない場合がある場合、これはおそらく [[passwordprotect]] を使用して modx がスニペットをキャッシュするためです。Revolution で [[!passwordprotect]] を使用した方が成功しました。コードは Evolution の [!passwordprotect!] だと思います。感嘆符は、スニペットをキャッシュしないことを示しています。それが誰かを助けることを願っています!

于 2012-05-03T21:19:47.990 に答える
0

おそらくhtaccessは必要ありません。正しいシステム イベントからHTTP 認証ヘッダーhttp://php.net/manual/en/features.http-auth.phpを送信できます。

于 2012-05-01T22:10:57.590 に答える