WordPress TOP 페이지 이외 표시되지 않을때 / 특정 페이지가 표시되지 않을때 해결방법

현상


워드프레스로 사이트 설정후 메인 TOP 페이지는 표시되는데, TOP 페이지 이 외 다른 페이지에 액세스하면 404에러가 나오는 현상이 발생되었습니다. 구글에 검색해도 잘 나와 있지도 않고 대처법도 좀 처럼 찾을 수 없었습니다. 해결 방법을 발견해서 그 순서와 내용을 공유합니다.
이 해결 방법은 「톱 페이지 이외 표시되지 않음」현상 외, 「특정의 페이지가 표시되지 않음」이라는 것에도 해당할 것 같습니다.

 

 

 

결론


.htaccess가 무효와 되어 있었습니다.

 

 

 

실행 환경


  • CentOS 8
  • Apache
  • php 8.2
  • WordPress 6.3

 

 

 

해결 방법


해결방법 1 :

「고유 링크 설정」에서 그대로 갱신
제가 여러가지 찾아 본가운데 간단히 해결되었다는 내용이 있어 따라해 보았습니다.
설정해야 할 고유 링크 설정이 반영되지 않는 경우가 있다고 합니다. 그래서 설정을 다시 해 봅니다.

방법은 WordPress의 관리 화면에서 “설정> 고유 링크 설정”을 클릭하고 그대로 “변경 저장”을 클릭하면됩니다.

저는 반복해서 해봤지만 별 효과는 없었습니다.

 

해결 방법2 :

「.htaccess」를 확인

1. “.htaccess”가 활성화되어 있는지 확인

“.htaccess”의 내용을 설정이 잘못되어서 표시가 안되는 경우도 있지만  제 경우에는 파일 자체가 유효화 되어 있지 않았던 것이 원인이었습니다.
아무리 파일을 제대로 설정한들 파일을 읽어 주지 않으면 에러가 나는게 당연했습니다.

vi를 이용해 파일을 편집합니다. 참조 링크: (  ubuntu20-htaccess-사용가능-수정하기-apache2 )

vi /etc/httpd/conf/httpd.conf

 

내용은 여러가지 써 있습니다만, 편집할 부분은 <Directory ※></Directory >의 세그먼트(segment)로 정의되어 있는 「AllowOverride」입니다. 「.htaccess」가 무효인 경우는, 「AllowOverride None」이 되어 있었습니다.

이것을 21행의 「AllowOverride All」 로 변경합니다.

※ 각 계층마다(“/”,”/var/www”,”/var/www/html”)에 설정이 있었는데, 저의 경우는 WordPress 관련의 파일 및 「.htaccess」를 두고 있는 디렉토리는 ‘/var/www/html’이였고 <Directory “/var/www/html”></Directory>의 세그먼트를 수정했습니다.

<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of: 
#     Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
# 
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#     Options FileInfo AuthConfig Limit
#
AllowOverride None
# ⇒ 이부분을「AllowOverride ALL」로 변경
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

 

2. 「.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

 

정리


「.htaccess」추가와 httpd.conf 파일 수정후 문제없이 화면 표시 되었습니다.

감사합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top