워드 프레스가 404 오류로 재정의하므로 워드 프레스가 아닌 서브 디렉토리에 액세스 할 수 없습니다


34

나는 이전에 요청 했지만 적절하게 대답하지 않은이 질문을 참조하십시오 : Wordpress는 실제 하위 디렉토리를 재정의 하고 비 "Wordpress"페이지 / 코드는 404 오류

나는 같은 문제가 있고 그물에서 찾은 거의 모든 것을 시도했습니다. 워드 프레스에서 퍼머 링크를 켜는 것과 관련이 있습니다. 그러나 하위 디렉토리에 새로운 .htaccess 파일을 넣었습니다.

RewriteEngine 끄기

문제는 여전히 존재합니다. wordpress .htaccess 파일을 완전히 삭제하더라도 문제는 여전히 존재합니다.

또한 다양한 위치의 ErrorDocument 401 "무단 액세스"및 ErrorDocument 404 "무단 액세스"및 Redirect 301 / mysubdirectory http://www.mydomain.com/mysubdirectory/index.html 과 같은 다른 제안 된 솔루션을 모두 사용해 보았습니다. .

누군가 다른 솔루션을 제공 할 수 있습니까? 내가 고칠 수있는 유일한 방법은 영구 링크를 끄는 것이지만 켜져 있어야합니다.

감사,

니콜


WordPress 루트 폴더에서 index.php의 이름을 index.bak로 바꾸면 어떻게됩니까? 디렉토리에 여전히 액세스 할 수 없습니까?
Horttcore

하위 폴더 .htaccess에서 기본 URL을 재정의하려고 했습니까?
Cédric G

답변:


28

나는 당신이 당신의 사이트 루트에 WordPress를 넣고 외부 디렉토리도 사이트 루트에 있다고 가정합니다. 이런 일이 발생하는 이유는 .htaccess 파일이 계층 구조를 따르기 때문입니다. 최상위 수준의 .htaccess 파일에있는 지시문은 아래로 내려가 모든 디렉토리에 적용됩니다.

이 경우 여러 가지 중 하나를 수행 할 수 있습니다.

  1. WordPress를 자체 디렉토리로 이동하십시오. 참조 : http://codex.wordpress.org/Moving_WordPress WordPress를 다른 디렉토리와 동일한 수준으로 서버 디렉토리 계층 구조에서 WordPress 재 작성 규칙이 다른 디렉토리에 영향을 줄 수 없도록 자체 디렉토리로 이동하는 경우.

  2. RewriteEngine Off-정상적으로 작동합니다. 작동하지 않으면 와일드 카드 DNS 설정을 사용하고 있지 않은지 확인하십시오. DNS 설정에서 웹 서버를 가리키는 와일드 카드 * 호스트 이름 레코드가있는 경우 .htaccess 및 하위 도메인에 혼란을 야기 할 수 있습니다.

  3. 사이트 루트의 .htaccess 파일에서 WordPress .htaccess 지시문 위에 다음을 추가하십시오.

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    </IfModule>
    

이 중 하나가 당신을 위해 작동합니다.


17

이것은 비슷한 상황에서 과거에 저에게 효과적이었습니다.

이것을 위에 올려 놓으십시오 .htaccess

ErrorDocument 401 default

2
감사! 나는 많은 일을 시도했지만 이것이 내 경우에 효과가 있었던 유일한 해결책입니다 : 암호로 보호 된 하위 디렉토리
Rado

2
저에게도 효과가 있었으며 왜 작동하는지에 대한 설명이 있습니까?
Asaf

워드 프레스를 사용하지 않고 OpenCart를 사용하고 동일한 문제가 발생합니다. 설명이 정말 도움이 될 것입니다.
billynoah

4

내 파일을 동일한 서버에 다른 하위 디렉토리 폴더에 복사하면 내 페이지에 액세스하려고 할 때 index.php가 제대로 작동하지만 다른 페이지는 작동하지 않으며 404 오류가 발생합니다. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다!!

나는 단지 htaccess로 원본을 들여다 본다.

# 워드 프레스 시작

RewriteEngine 켜기
RewriteBase /
RewriteCond % {REQUEST_FILENAME}! -f
RewriteCond % {REQUEST_FILENAME}! -d
RewriteRule. /index.php [L]

# 엔드 워드 프레스

그리고 새로운 것을 넣어

# 워드 프레스 시작

RewriteEngine 켜기
RewriteBase / subdirectory 폴더
RewriteCond % {REQUEST_FILENAME}! -f
RewriteCond % {REQUEST_FILENAME}! -d
RewriteRule. /subdirectoryfolder/index.php [L]

# 엔드 워드 프레스

@lizette 님 안녕하세요. WPSE 포럼에 오신 것을 환영합니다. 여기에서 형식이 어떻게 작동하는지 확인할 수 있습니다 .
Pothi Kalimuthu

4

이 스레드는 몇 개월이되었지만 작동하지 않는 경우를 대비하여!

비슷한 문제가 있었지만 내 문제는 워드 프레스 설치가 하위 디렉토리에 있으며 루트 (WP 설치 디렉토리 외부)의 폴더에 대한 URL 액세스를 차단했지만 영구 링크가 활성화 된 경우에만 가능했습니다. 이 문제를 해결하기 위해 WP 설치가있는 하위 디렉토리에서 index.php와 .htaccess (복사하지 않음)를 모두 복사하고 루트 public_html (또는 WP 설치 외부에서 액세스하려는 하위 디렉토리)에 배치했습니다. 예배 규칙서). .htaccess 파일에는 이미 영구 링크에 대한 재 작성 조건이 있습니다.

RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

새로 고침을 위해 퍼머 링크를 활성화하면 모든 문제가 해결되었습니다. 과거에 문제가 발생했기 때문에 루트 폴더에 대한 권한도 올바르게 설정되어 있는지 확인하십시오.


3

여전히 htaccess가 비활성화 된 상태에서 404를 얻고 경로를 확인했으며 파일이 있다는 것을 알고 있다면 왼쪽에있는 유일한 옵션은이 세 가지입니다 ...

옵션 ...

  1. 서버가 대소 문자를 구분하는 운영 체제를 실행 중일 수 있습니다. 즉, 경로를 입력하고 정확한 문자를 사용하지 않고 대소 문자를 구분하면 작동하지 않습니다.
  2. 권한 : 파일이나 폴더 또는 상위 폴더에 대한 권한이 잘못되었을 수 있습니다. 파일, 폴더 및 상위 폴더에 대한 사용 권한을 755로 변경하십시오. ssh (터미널) 액세스 권한이 있으면 루트로 이동 하여이 "chmod -R 755 mydir"을 실행하면 재귀 적으로 모든 권한을 설정합니다.
  3. 모든 후에도 여전히 문제가 발생하면 서버 구성 문제가 발생하는 것입니다 (아파치). 호스팅 제공 업체에 문의해야합니다.

그중 아무것도 작동하지 않으면 새로운 호스트가 필요합니다.


2

htaccess를 편집하는 머리카락을 거의 뽑은 후 마침내 WordPress에 적합한 솔루션을 찾았습니다.

WordPress가 설치된 동일한 루트 디렉토리에 codeiginter 스크립트를 설치 한 후이 문제가 발생했습니다.

여기에 나열된 모든 트릭을 시도한 후에도 새 스크립트와 관련된 페이지에서 404 오류가 계속 발생했습니다.

WordPress htaccess가 스크립트의 htaccess를 대체하고 있다고 언급했습니다. 또한 동일한 디렉토리에있는 다른 WordPress 설치에는이 404 오류가 없습니다.

동일한 서버 디렉토리에 새 WordPress 설치의 htaccess를 채택하여 스크립트가있는 폴더에 추가했습니다. 그 모습은 다음과 같습니다.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subdirectoryname/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryname/index.php [L]
</IfModule>

교체 subdirectoryname을 디렉토리의 이름과 스크립트가있는 폴더 안에이 htaccess로 파일을 배치합니다.

예 : 여기에 사이트가 설치된 경우

public_html/

새 폴더가 있습니다

`public_html/example`

위의 htaccess를 복사하여 'example'폴더에 저장하면 작동합니다.


1

비슷한 문제가 발생했을 때 여기에서 여러 번 답변을 보았습니다. 하위 디렉토리에 파일을 액세스하려고 할 때 404 오류가 발생하는 파일이 있습니다. Kirsten Douglas가 말한 것처럼 WordPress가 이미 작업을 수행하는 것처럼 모든 .htaccess 항목이이를 수정하지 못했습니다.

내 솔루션

서버에서 error_log를 확인한 후이 기사를 찾았습니다 . 스크립트의 잘못된 UID에 대한 메시지가 표시되었습니다. 또한 파일로 인해 404가 발생하지 않았지만 서버가 500.html 파일을 제공 할 수 없기 때문에 500 오류가 발생했습니다.

루트로 파일을 만들었고 웹 파일 소유자의 소유권을 변경해야했습니다.

이것이 동일한 문제를 겪은 다른 사람들에게 도움이되기를 바랍니다.


0

RewriteCond하위 폴더 내부의 요청에 대해 WordPress 규칙을 무시하도록 지시문을 추가 할 수 있어야합니다 .

RewriteCond %{REQUEST_URI} !^/mysubdirectory
# rest of WordPress rewrite rules

그러나, 당신도 함께 말 없이 워드 프레스 .htaccess문제를 겪고있는? 서브 디렉토리의 내용은 무엇입니까 .htaccess?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.