Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

PHP 그누보드5 짧은주소(rewrite) 사용하기 - Apache 설정

페이지 정보

조회 2,875회 작성일 21-06-24 08:51
그누보드5의 짧은 주소 기능을 Apache 서버에서 사용하기 위한 설정 방법이다. httpd -M 명령으로 rewrite_module 활성화 여부를 확인하고, 비활성 상태라면 00-base.conf에 LoadModule rewrite_module modules/mod_rewrite.so를 추가한다. 이후 그누보드 환경설정에서 제공하는 rewrite 규칙을 .htaccess에 붙여넣어 사용한다.

Apache 서버인 경우 rewrite_module 이 비활성화 되어 있으면 짧은 주소를 사용할수 없습니다.

위 멘트에 대한 활성화 설정방법입니다.

[root@eyedino www]# httpd -M

------------생략---------------------

negotiation_module (shared)

remoteip_module (shared)

reqtimeout_module (shared)

request_module (shared)

rewrite_module (shared) //있으면 활성된 것이고 없으면 다음단계 진입

setenvif_module (shared)

slotmem_plain_module (shared)

slotmem_shm_module (shared)

socache_dbm_module (shared)

socache_memcache_module (shared)

-------------생략------------------------

다음단계

[root@eyedino www]# nano /etc/httpd/conf.modules.d/00-base.conf

또는 vi editor

[root@eyedino www]# vi /etc/httpd/conf.modules.d/00-base.conf

마지막줄에 붙여넣기

LoadModule rewrite_module modules/mod_rewrite.so

하시면 기본설정은 끝납니다.

.htaccess 파일설정

아시는 것처럼 루트 홈폴더 에

그누보드 환경설정/짧은주소/apache 설정 코드 보기를 복사하여 붙여넣기합니다.

그누보드5 rewrite BEGIN

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^ - [L]

RewriteRule ^shop/list-([0-9a-z]+)$ shop/list.php?ca_id=$1&rewrite=1 [QSA,L]

RewriteRule ^shop/type-([0-9a-z]+)$ shop/listtype.php?type=$1&rewrite=1 [QSA,L]

RewriteRule ^shop/([0-9a-zA-Z_]+)$ shop/item.php?it_id=$1&rewrite=1 [QSA,L]

RewriteRule ^shop/([^/]+)/$ shop/item.php?it_seo_title=$1&rewrite=1 [QSA,L]

RewriteRule ^content/([0-9a-zA-Z_]+)$ bbs/content.php?co_id=$1&rewrite=1 [QSA,L]

RewriteRule ^content/([^/]+)/$ bbs/content.php?co_seo_title=$1&rewrite=1 [QSA,L]

RewriteRule ^rss/([0-9a-zA-Z_]+)$ bbs/rss.php?bo_table=$1 [QSA,L]

RewriteRule ^([0-9a-zA-Z_]+)$ bbs/board.php?bo_table=$1&rewrite=1 [QSA,L]

RewriteRule ^([0-9a-zA-Z_]+)/([^/]+)/$ bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 [QSA,L]

RewriteRule ^([0-9a-zA-Z_]+)/write$ bbs/write.php?bo_table=$1&rewrite=1 [QSA,L]

RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$ bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 [QSA,L]

</IfModule>

그누보드5 rewrite END

.htaccess파일을 저장합니다.

(혹시 root 소유권 으로 실행 안될 수도 있으니 소유권도 변경 바랍니다.

[root@eyedino www]# chown eyedino.eyedino .htaccess

마지막 단계

아파치 설정파일 설정

[root@eyedino www]# nano /etc/httpd/conf/httpd.conf

또는

[root@eyedino www]# vi nano /etc/httpd/conf/httpd.conf

<Directory "/home/*****/www">

AllowOverride None -> ALL 바꿈

Allow open access:

Require all granted

</Directory>

<Directory "/home/*****/www">

AllowOverride ALL

Allow open access:

Require all granted

</Directory>

CETOS8 에서는 기본값으로

-------------생략-----------------

The following lines prevent .htaccess and .htpasswd files from being

viewed by Web clients.

<Files ".ht*">

Require all denied

</Files>

-----------생략-------------------

이부분 막아놨더군요!

<Files ".ht*">

Require all denied

</Files>

주석정리 해주시고

httpd 재시작하시면 끝~

[root@eyedino www]# systemctl restart httpd

도움이 되었으면 좋겠습니다.



Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.