본문 바로가기

Computer/Linux

워드프레스에서 퍼머링크(Permalink) 사용하기

서버환경에 따라서 퍼머링크가 사용불가능할때가 있는데 아래 설정변경으로 사용 가능하게 할 수 있다.



조건

1.  Mod_Rewrite 가 활성화 되어있어야한다.

2. 웹페이지 루트 디렉토리, 예를들어 /var/www/html 라는 폴더에 index 파일이 있다면 /var/www/html/.htaccess 파일에 아래 문구가 있어야한다.

3. httpd.conf 혹은 apache2.conf 파일에 AllowOverride All  지정



조건 1. 

Mod_rewrite 가 설치되어있으나 활성화가 되어있지 않은경우 아래 명령어로 활성화 시키면 된다.


a2enmod rewrite


그리고 <?php phpinfo() ?> 를 통해서 활성화 여부 확인할 수 있다.





조건 2. 

웹페이지 루트 디렉토리에 .htaccess 파일을 아래와 같이 수정하면된다. 

(파일명이 숨겨져있는데 보는 방법은 ls -lfl 이다.)


예) 워드프레스 파일이 /html/wp 폴더에 존재하고 index 파일은 /html 에 있다고 가정할때


<IfModule mod_rewrite.c>                                                                                                                                     

RewriteEngine On                                                                                                                                             

RewriteBase /wp/                                                                                                                                             

RewriteRule ^index\.php$ - [L]                                                                                                                               

RewriteCond %{REQUEST_FILENAME} !-f                                                                                                                          

RewriteCond %{REQUEST_FILENAME} !-d                                                                                                                          

RewriteRule . /wp/index.php [L]                                                                                                                              

</IfModule>        


직접 입력하기가 귀찮으면 .htaccess 파일의 퍼미션을 777로 수정하고 워드프로세스 퍼머링크에서 저장버튼을 누르면 알아서 입력된다, 입력후에 퍼미션값은 보안을위해 644로 돌려놓아야한다.




조건 3.

위 2개를 적용하고도 작동하지 않을경우 아파치 설정파일에 AllowOverride None 이라고 표시되어 있을것이다.

/etc/apache2/apache2.conf 파일을 열어서 AllowOverride None을 AllowOverride All 로 변경, 저장하고 나와서 아파치를 재부팅하면 정상 작동 될것이다.


sudo service apache2 restart