htaccess는 특정 경로를 허용합니다

htaccess는 특정 경로를 허용합니다

현재 htaccess는 모든 사용자를 거부하고 있습니다. 모든 사용자가 WordPress의 JSON 피드에만 액세스할 수 있도록 허용하고 싶습니다.

htaccess 파일 위치에서 피드 URL은 다음과 같습니다.

./row/wordpress/wp-json/wp/v2/screen

질문

내가 이해한 바에 따르면 이것은 재작성 규칙에 의해 생성된 "가상" URL입니다. 실제 파일이 아니고 엔드포인트일 뿐이므로 모든 사용자가 해당 파일에 액세스하도록 허용하려면 어떻게 해야 합니까?

현재 시도

비밀번호 없이 모든 사용자를 차단하는 현재 시도는 다음과 같습니다. 내 Files노드는 아무것도 하지 않습니다.

// root folder's .htaccess

AuthUserFile /var/www/domains/dev/.htpasswd
AuthType Basic
AuthName "Password Required"
Require user SecretUser
Order Deny,Allow
Deny from All

<Files "row/wordpress/wp-json/wp/v2/screen">
    Allow from all
</Files>

Satisfy Any       

질문

./row/wordpress/wp-json/wp/v2/screen모든 방문자가 볼 수 있는 가상 경로를 어떻게 얻을 수 있습니까 ?

** 편집하다 **

그 이후로 둘 다 시도해봤어

<Directory row/wordpress/wp-json/v2/>
    Allow from All
</Directory>

<Location row/wordpress/wp-json/v2/>
    Allow from All
</Location>

성공하지 못한 채 둘 다 501을 발생시킵니다.

답변1

다음은 실제 파일을 참조하는지 여부에 관계없이 단일 URL이 기본 비밀번호 인증을 우회하도록 허용하는 두 가지 접근 방식입니다.

옵션 1: 비밀번호 보호를 통해 단일 URL을 허용합니다.

AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/domains/dev/.htpasswd
Require expr %{REQUEST_URI} == '/row/wordpress/wp-json/wp/v2/screen'
Require user SecretUser

옵션 2: 특정 URL과 일치하지 않는 모든 요청에 ​​비밀번호 보호를 적용합니다(이 옵션에는 Apache 2.4 필요).

<If "%{REQUEST_URI} != '/row/wordpress/wp-json/wp/v2/screen'">
    AuthType Basic
    AuthName "Password Required"
    AuthUserFile /var/www/domains/dev/.htpasswd
    Require user SecretUser
</If>

답변2

THE_REQUEST가상 경로(wordpress로 생성됨)의 특성으로 인해 대신 사용해야 했습니다 .

<If "%{THE_REQUEST} =~ m#^GET /sites/dawna/wordpress/wp-json/#">
        Allow from All
        Satisfy Any
</If>

WordPress 리디렉션에서는 URI가 항상 my if 문을 쓸모없게 만들기 때문에 wordpress/index.php작동 하지 않았습니다.REQUEST_URI/path/to/wordpress/index.php

메모

PUT 또는 기타를 지원해야 하는 경우 이를 추가해야 합니다. [A-Z]{3}또는 [A-Z]{3-6}후자가 모든 것을 열 수 있는 곳에 추가해야 합니다.

관련 정보