웹을 개발하다보면 index.php 죽이기라는 말을 많이들 들어봤을 것이다. 

처음 index.php 죽이기를 접했을 시 이게 무슨 말이지? 하였지만 막상 사용하고 보니 이해가 되었다. 

 

index.php 란 쉽게 말해 말 그대로 index.php 자체를 없애고 내부적으로는 index.php 에서 모든걸 처리한다는 뜻이다.

그런데 말입니다. index.php 를 죽이는데 index.php 에서 모든걸 처리한다고?? 여기서 이건 뭔 개똥같은 소리지 할 수 있다. 

 

좀더 저세히 설명하자면  통상 Apache 에서 도메인만 있을 경우 우리는 index.php 또는 index.html 을 Default 로 

설정해 놓는데, 이 이유때문인지 index.php 를 중점으로 명칭이 불려온것같다. 

 

사실상 .htaccess 에서 설정에 따라 index.php 를 idx.php 로 변경하면 idx.php 죽이기가 되니 

이런걸로 크게 궁금해 할 이유는 없다고 생각한다. 

 

.htaccess 
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond $1 !^(index\.php|favicon\.ico|.well-known|robots\.txt)
    RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>

 

본 설정은 실제 내가 운영하는 사이트중 가장 간단하게 설정된 사이트의 .htaccess 설정이며 붉은색으로 표시된 index.php 의 경우

위에서 언급했지만 idx.php 로변경시 idx.php 파일 죽이기로 명칭을 바꿀 수 있다는 말이다.

 

다만 이설정을 위해서는 Apache 에서도 설정이 필요하다.. 이설정은 서버마다 다를 수 있어.. (사실 서버는 내가 약하다.) 

암튼 중요 포인트만 집고 넘어간다. 

 

Apache 설정 중요포인트

1. httpd.conf  에서 

찾을 구문 => AllowOverride None

변경할 구문 => AllowOverride All

 

2. 추가로 아래와 같은 코드 추가 (.ht 로 시작하는 파일을 url 에서 접근못하도록 처리 - 이게 안되면 해커의 표적이 됨)

<Files ".ht*">
    Require all denied
</Files>

2번과 같이 반드시 .htaccess 로 URL 접근이 불가능하도록 처리해 주는게 가장 큰 포인트이다. 

간혹 저 설정없이 사용하는 고객사 서버를 보면 정말 한숨만 나온다.

 

나름 서버전문가와 함께 구축을 했다고는 하지만, 웹 지식이 전혀 없는 서버 전문가와 함께 하다보니

웹사이트 운영의 중요포인트를 놓치고 가는 경우가 많다. 

 

뭐 요즘은 프레임워크가 워낙 잘되어있어, PHP 뿐만 아니라 서버설정까지 전부 매뉴얼화 되어있기에 

보안이슈가 많이 없어지긴 했다. 

 

다음편에서는 시간이 된다면 보안을 다뤄보고 싶다만 정말 귀찮다.. 보안으로 포스팅 하다보면 끝도 없을 것 같다.