programing

.htaccess, mod_https 및 기본 인증

abcjava 2023. 9. 13. 22:16
반응형

.htaccess, mod_https 및 기본 인증

저는 워드프레스 사이트에서 작업하고 있으며, 제 페이지는 mod_rewriting하여 디렉토리처럼 보이는 영구링크 구조를 사용하고 있습니다.몇 페이지의 경우 기본 인증을 사용하여 몇 페이지의 암호를 보호하고자 합니다.내 .htaccess 파일에 이 내용을 어떻게 적어야 합니까?파일을 보호하고 있습니까, 아니면 다시 작성한 주소를 보호하고 있는 건가요?

이를 위해 mod_rewrite가 필요하지 않습니다. 이 방법이 효과적이기를 바랍니다.

SetEnvIfNoCase Request_URI ^/some/path/to/protect require_auth=true
SetEnvIfNoCase Request_URI ^/another/protected/path require_auth=true

# Auth stuff
AuthUserFile /var/www/htpasswd
AuthName "Password Protected"
AuthType Basic

# Setup a deny/allow
Order Deny,Allow
# Deny from everyone
Deny from all
# except if either of these are satisfied
Satisfy any
# 1. a valid authenticated user
Require valid-user
# or 2. the "require_auth" var is NOT set
Allow from env=!require_auth

mod_auth 및 mod_env 모듈은 mod_rewrite보다 우선해야 하며 따라서 가짜 디렉터리 구조는 동일해야 합니다.당신은 단지 한가지를 작성하기만 하면 됩니다.SetEnvIfNoCase Request_URI ^/some/path/to/protect require_auth=true각자 필요에 맞게 나머지 저작물을 작성합니다.

이 솔루션에 대한 유일한 문제는 취소 버튼을 클릭하면 보호된 페이지가 표시된다는 것입니다.다음을 사용하여 이 문제를 해결하려고 했습니다.

RewriteCond %{REMOTE_USER} !user
RewriteRule ^/protected-page /unauthenticated-page [R=401]

하지만 그것은 효과가 없었습니다.왜 그런지 모르겠습니다.

문제를 빨리 해결하기 위해 나는 추가했습니다.

ErrorDocument 401 "You don't have access."

리디렉션을 만드는 데 사용했습니다.

ErrorDocument 401 '<html><head><meta http-equiv="refresh" content="0; url=/unauthenticated-page" /></head><body></body></html>'

저와 같은 문제를 가지고 오신 분들을 위해 이렇게 .htaccess로

AuthType Basic
AuthName "some_name"
AuthUserFile "/path/to/password/passwd"
require valid-user
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

위의 규칙이 예상대로 작동하지 않습니다(승인 후 다시 쓰기).

지시 병합 순서 때문에("If"가 마지막으로 병합되는 경우)

그 점을 지적해 준 알렉의 코멘트에 감사드립니다.

IfModule 괄호를 제거하면 규칙이 효과를 발휘하기 시작했습니다.

언급URL : https://stackoverflow.com/questions/12203989/htaccess-mod-rewrite-and-basic-authentication

반응형