WordPress는 홈페이지를 제외한 모든 페이지에서 404 페이지를 찾을 수 없습니다.


115

갑자기 WordPress 웹 사이트로 이동하면 모든 페이지에 404 페이지를 찾을 수 없음 페이지가 표시됩니다. 나는 문제가 퍼머 링크 구조에 있다고 가정하고 있는데, 내가 만지지 않았다고 맹세 할 수 있었다. 영구 링크 설정은 '월 및 이름'에 있습니다.

이 문제의 유사한 사례를 온라인에서 조사했는데 많은 것이 .htaccess파일 과 관련이 있습니까? 찾기를 시도했지만 할 수 없습니다. 어떻게 든 삭제 되었을까요? 어디에 있어야하나요?

어떤 제안이라도 도움이 될 것입니다

물론 숨겨진 파일도 볼 수 있습니다.


wordpress.stackexchange.com 에서도 이것을 물어볼 것을 제안합니다 .
James Wiseman 2011 년

답변:


95

.htaccess는 숨겨진 파일이므로 모든 파일을 ftp에 표시되도록 설정해야합니다.

permalink 구조를 기본값 (? p = ID)으로 되돌려 .htaccess가 문제인지 확인하는 것이 좋습니다.

그런 다음 "월 및 이름"구조를 다시 설정하고 작동하는지 확인할 수 있습니다.

PS : 3.1로 업그레이드하셨습니까? 이 경우 플러그인 문제가있는 사람들을 보았습니다.


1
예, 숨겨진 파일을 표시했습니다. 나는 기본에서 perma로 앞뒤로 전환했으며 기본적으로 작동합니다. 또한 WordPress가 자체적으로 업데이트됩니까? 로그온 할 때 웹 사이트에 이전에는 없었던 새로운 관리자 작업 표시 줄이 있다는 것을 알았습니다. 어떻게 거기에 도착했는지 모르겠습니다.
아담

이 플러그인과 충돌, 그래서 누군가가 실수로, 3.1 업데이트
아담

1
누락 .htaccess이 문제로 이어질 수 또한, 당신은 퍼머를 해결 무엇 때문에 확인 첫 번째, 숨겨지지 않거나 누락
Osify

1
WordPress 관리자에 로그인하고 파머 링크를 다시 저장하십시오. .htaccess 파일을 생성하거나 기존 파일을 업데이트합니다.
Keyur Patel

관리자를 사용하여 수동으로 .htaccess 파일을 업데이트했지만 여전히 동일한 문제가 있습니다. 플러그인도 비활성화하되 영구 링크 문제를 수정하지는 마십시오.
Jaymin

56

기본적으로 .htaccess 파일이 있어야하며 httpd.conf가 정확해야합니다.

제 경우에는 섹션에서 /etc/apache2/apache2.conf 파일을 변경했습니다.

<Directory "/var/www/html">

변경된 줄은 다음과 같습니다.

AllowOverride None

AllowOverride All

그리고 웹 서버를 다시 시작하십시오.

systemctl restart apache2

1
감사합니다. 제 경우에는 AllowOverride 설정이 누락되었습니다.
rag

1
이것은 나에게도 해결되었습니다. 나는 그것이 가치있는 것을 위해 방랑 스카치 박스를 사용하고 있습니다.
Matt Kaye

2
이것은 거의 항상 문제입니다. 최고의 답변이어야합니다.
Noel Baron

이것은 나를 위해 문제를 수정했습니다
Charles

52

당신이 아닌 다른 영구 링크 사용하는 경우 그 문제를 해결하는 것은 매우 간단 default같은 Day and name, Month and name, Numeric, Post name또는 Custom Structure, 당신은 단지 필요를

관리자 영역에 로그인하십시오 Settings > Permalinks.http://yoursite.com/wp-admin/options-permalink.php

선택 Default고유 주소 설정을 변경 저장 한 후,

그런 다음 다른 이전 영구 링크 선택으로 다시 되돌 리거나 원하는대로 유지할 수 있습니다.default

이 문제는 도메인이나 위치에서 다른 위치로 사이트를 이동할 때 발생할 수 있습니다.


1
이것은 다소 도움이되었고 일부 데이터베이스 오류가 있었고 나중에 모든 페이지가 404였습니다. 영구 링크 옵션을 다른 옵션 (예 : 일반)으로 전환 한 다음 기본 옵션으로 다시 전환하면 모든 링크가 수정되었습니다!
PaulBGD

그 :) 다행
우 사마 술라이

2
완벽한 대답 +100
handiansom

작동하지 않을 때 기본 영구 링크 설정으로 되돌리려면 어떻게 mysite.com/wp-admin해야합니까?
J86

완벽한 답변 10086
Aflext

29

기본 동작 ( example.com/?p=42)이 작동하는 경우 다음을 수행해야합니다.

  • 선호하는 영구 링크 스타일로 변경하고 Admin: Settings > Permalinks저장을 클릭합니다. 때때로 문제를 해결합니다. 그렇지 않은 경우 :
  • 파일 /path/to/wordpress/.htaccess이 변경되었고 이제 RewriteEngine On. 줄이 포함되어 있지 않으면 Wordpress 권한 문제입니다.
  • 'rewrite'모듈이로드되었는지 확인합니다. 다음을 사용하여 PHP 파일을 만듭니다.

    <?php
      phpinfo()
    ?>

    그 안에 브라우저에서 열고 mod_rewrite. '로드 된 모듈'섹션에 있어야합니다. 그렇지 않은 경우 활성화하십시오- index.html자세한 내용 은 아파치 기본 파일을 확인하십시오-Ubuntu에서 도우미를 사용하여 수행하십시오 a2enmod.

  • 아파치 서버가 .htaccess파일을 보고 있는지 확인하십시오 . 공개 httpd.conf- 또는 우분투의 대안입니다, /etc/apache2/apache2.conf. 그 안에는 다음과 같은 것이 있어야합니다.

    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
  • 이러한 변경을 한 후에는 아파치 서버를 다시 시작하는 것을 잊지 마십시오. sudo service apache2 restart


20

이 모든 것이 작동하지 않고 .htaccess가 정확하고 영구 링크 트릭이 작동하지 않으면 apache2 rewite mod를 활성화하지 않았을 수 있습니다 .

나는 이것을 실행하고 내 문제가 해결되었습니다.

 sudo a2enmod rewrite 

페이지 mod_rewrite에서 검색하여 phpinfo();활성화했는지 확인하십시오. 그것은에 Loaded Modulesapache2
vanduc1102

9

WordPress 관리 인터페이스 내에서 다음을 수행하십시오.

  1. 관리자 설정으로 이동

  2. 퍼머 링크를 클릭하고 라디오 버튼에서 게시물 이름을 선택합니다.

  3. 아래로 스크롤하면 .htaccess여기에 다음과 같은 코드 가 표시됩니다 .

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule> 
  4. 코드를 복사하고 .htaccess파일에 붙여 넣습니다 .

1
어디에서 찾을 수 있습니까? 퍼머 링크에는 이와 같은 것이 없습니다.
Boris_yo

귀하의 경우에만 @Boris_yo으로는 지금까지 내가 아는 한, 규칙이 표시됩니다 htaccess파일이 not쓰기가 ... 워드 프레스는 단순히 자체를 기록 할 경우 ...
Obmerk 크로 넨

1
이 대답은 굉장합니다! Linux에서 WP를 사용하지 않으면 그것에 대해 알 수 없습니다. 고마워요
Mayeenul 이슬람

7

이 오류는 아파치 httpd.conf 문서에서 다시 쓰기 모드가 비활성화되어 발생합니다. 주석을 제거하고 서구 친화적 인 영구 링크를 즐기십시오.


4
  • .htaccess의 디렉토리가 올바른지 확인하십시오.
  • "siteurl"및 "home"필드가 올바른지 확인하십시오.

1
저에게는 집이 문제였습니다. 나는 그것을 고치고 모두 다시 일합니다. Obrithankyou José Carlos.
Tiago Gouvêa 2014 년

4

우리는 동일한 문제가 있었고 가상 호스트의 error.log를 확인하여 해결했습니다. 다음 메시지를 찾았습니다.

AH00670 : 옵션 FollowSymLinks 및 SymLinksIfOwnerMatch가 모두 꺼져 있으므로 RewriteRule 지시문도 디렉토리 제한을 우회하는 유사한 기능으로 인해 금지됩니다. / srv / www / htdocs / wp-intranet /

이 솔루션은 세트로했다 Options AllAllowOverride All우리의 가상 호스트 설정에.


3

계정에 대한 FTP 액세스 권한이있는 경우 :

먼저 wp-admin에 로그인하고 설정> 영구 링크로 이동합니다.

하단에 다음과 같은 내용이 표시되어야합니다.

".htaccess 파일이 쓰기 가능한 경우 자동으로 수행 할 수 있지만 .htaccess 파일에 있어야하는 mod_rewrite 규칙이 아닙니다. 필드를 클릭하고 CTRL + a를 눌러 모두 선택하십시오."

이것이 사실이면 다음을 수행하십시오.

  1. FTP 클라이언트의 환경 설정으로 이동하여 숨겨진 파일이 표시되는지 확인하십시오 (FTP 클라이언트에 따라 다름). 이렇게하지 않으면 htaccess 파일을 찾을 수 없습니다.

  2. wp-admin, wp-content, wp-includes 디렉토리가있는 폴더로 이동하십시오. .htaccess 파일을 확인하십시오. 존재하는 경우 4 단계로 건너 뜁니다.

  3. 존재하지 않는 경우 FTP 프로그램에 .htaccess라는 새 빈 파일을 만듭니다.

  4. .htaccess 파일의 CHMOD를 666 (원하는 방식에 대한 기본 설정)으로 변경합니다.

  5. 영구 링크 페이지로 돌아가서 원하는 링크 구조를 수정하세요. 문제가 해결되어야합니다!

  6. 완료 한 후 htaccess 파일의 chmod를 다시 644로 변경하십시오.

똑같은 문제가 있었고 즉시 해결하는 것 같았습니다! 행운을 빕니다!


"mod_rewrite"이것이 문제였습니다. 활성화하는 것을 잊었습니다! 감사합니다 :)
Chemaclass

3

대부분의 경우이 문제는 WordPress 관리자 의 설정-> 영구 링크 페이지를 방문하고 저장을 클릭하여 해결됩니다 (다른 여러 답변이 이미 지적했듯이). 이 페이지에 액세스하면 WordPress .htaccess는 문제를 마술처럼 수정하는 지시문을 파일 에 다시 작성합니다 . 이 문제는 종종 사이트를 이동 한 후에 발생합니다 (사이트 .htaccess가 남아 있거나 설정을 업데이트해야하기 때문에 사이트가 중단됨 ).

WordPress에 .htaccess파일 쓰기 권한이없는 경우 페이지 상단에 알림이 표시되고 설정이 저장되면 하단에 추가 지침이 표시됩니다. 이 경우 .htaccess파일을 직접 편집 하거나 해당 파일에 대한 권한을 수정해야합니다. 파일은 WordPress 설치의 루트에 있습니다. cd디렉토리 및 sudo chmod 644 .htaccess. 파일이 올바른 그룹에 속하는지 확인하고 chown. 방법을 모르는 경우 호스팅 제공 업체에 문의하십시오.

공유 호스팅을 사용하는 경우 그게 전부입니다. 여전히 문제가있는 경우 호스팅 제공 업체의 지원에 문의 할 수 있습니다. 그렇지 않으면 .htaccess@georgeos가 이미 제안한대로 서버에서 파일 사용 이 활성화되어 있는지 확인하십시오 . 참고 httpd.conf항상 사용되지는 ( 우분투는 사용되지 표시 하지만 공식 아파치 문서는 여전히 종종 주요 구성 파일 말한다 ). /etc/httpd/conf/httpd.conf그리고 /etc/apache2/apache2.conf이 파일에 대한 가장 일반적인 장소가 될 것으로 보인다. 일반적으로 공용 폴더에 대한 블록을 찾고 지시문이로 설정되어 <Directory /var/www/>있는지 확인합니다 . 이에 설정되어있는 경우 , 귀하의 파일은 단순히 서버에 의해 무시됩니다.AllowOverrideAllNone.htaccess



2

웹 호스트 설정에서 .htaccess가 허용되지 않을 수 있습니다. 이 경우 기본 영구 링크로 설정하면 작동합니다.


1

사례 1 :-이런 종류의 문제가 발생하면 사이트를 한 호스팅에서 다른 호스팅으로 마이그레이션 할 수 있는지 생각해 보겠습니다.

해결책 :-이전 서버 사본 .htaccess 파일 코드로 이동 한 다음 새 서버 .htaccess 파일을 붙여 넣으십시오. 99 % 내가 작동합니다.


0

나는 같은 문제가 있으므로 Apache를 제거하고 다시 만들면 문제가 해결되었습니다.


0

대시 보드에서 설정-> 영구 링크 로 이동 한 다음 마지막에 변경 사항 저장 버튼을 누르 십시오 . \



0

설정> permalink로 ging하여 모든 게시물의 permalink를 'month and day'로 변경했습니다.

이제 모든 게시물이 열리고 정상적으로 작동합니다.

다시 말하지만 모든 게시물의 이름을 실제 영구 링크로 변경했습니다. 다시 잘 작동합니다.

이 방법은 나를 위해 일했습니다 :-)


0

nginx 사용자의 경우

사이트의 conf 파일에서 다음을 사용하십시오 (일반적으로 /etc/nginx/sites-available/example.com).

location / { try_files $uri $uri/ /index.php?q=$uri&$args; }

그러면 URI 문자열과 제공된 인수를 사용하여 모든 영구 링크 요청이 index.php에 전달됩니다. A는 마십시오 systemctl reload nginx변화와 비의 홈페이지 링크가로드해야 볼 수 있습니다.


0

영구 링크 또는 서버 구성 변경을 시도하기 전에 .htaccess 파일을 확인하십시오. 이것은 대부분 손상되거나 비어있는 .htaccess 파일 문제입니다. htaccess 파일을 기본값으로 재설정

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

0

2 일이 지난 후 해결책은 파일 options +FollowSymLinks상단에 추가 하는 것이 었습니다 .htaccess.


-1

얼마 전에이 문제가 발생했습니다. 내 퍼머 링크를 기본값으로 재설정했거나 방금 저장했거나 테마 / 코어를 (4.7.4) / plugins로 업데이트하고 모든 플러그인을 비활성화하고 기본 테마로 전환했으며 데이터베이스 최적화, .htaccess가 이미 기본값이며 파일 권한을 확인했습니다. mod_rewrite가 켜져 있습니다. .

지금까지 아무 것도 작동하지 않습니다. 이전 페이지를 제외한 게시물, 새 페이지, / contact 페이지가 작동합니다.

기본적으로 작동하지 않는 페이지 / URL은 다음과 같습니다.

/breeding
/training
/training/*
/breeding/*

궁극적으로 루트 폴더에서 다음 파일을 찾았습니다.

/breeding.php 및 /training.php

두 파일의 이름을 바꾸고 위의 페이지가 작동했습니다.

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