본문 바로가기
PHP

[PHP] .php 확장자 생략으로 주소 줄이기!

by 초짜 주인장 수표 2018. 5. 20.

웹 서버를 설치하고 개발, 운용하는 경우 주소가 http://www.hello.com/world.php?param=1 과 같은 형태로 보여지게되면 뭔가 지저분해 보이기도 하고 약간은 신경을 덜 쓴 듯한 느낌이 든다.

이 때 주소를 http://www.hello.com/world?param=1 또는 http://www.hello.com/world 와 같이 깔끔하게 쓰기 위해서는 Linux, apache, php (LAPM) 환경에서 다음과 같은 작업을 한다.

1. httpd.conf 파일 수정
: Document root director가 될 디렉토리(다음의 예에서는 “myweb_directory” 또는 룰을 적용할 디렉토리에 대한 옵션을 지정한다. 만약 이미 지정되어 있으면 다음의 내용이 있는지 확인한다.

<Directory "/var/www/myweb_directory">
 Options -Indexes MultiViews FollowSymLinks
 AllowOverride All

-Indexes 옵션은 디렉토리의 파일 list를 보여주지 않는 옵션이므로 보안상 적용한다.

다음 httpd 를 다시 시작한다

service httpd restart

이제 http://www.hello.com/world와 같이 써도 인식이 된다. 각 화면에 속한 소스들에서 사이트 내의 link를 “/dir/index.php” 와 같이 작성된 부분을 “/dir/index”로 수정한다.

2. php.ini 파일 수정
/etc/php.ini 파일에서 다음과 같이 수정한다.

expose_php = Off

php.ini를 수정하는 이유는 세션아이디와 같은 부분에서 임시파일 또는 패킷을 캡쳐해서 확인하는 경우 PHP를 사용하는 것을 알 수 있다. 이러한 부분을 숨겨준다고 하니 추가로 꼭 지정한다.

apache의 rewrite rule을 이용하는 부분은 조금 더 복잡하나 다양한 방법으로 주소를 숨길 수 있다.

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d # is not directory RewriteCond %{REQUEST_FILENAME}\.php-f # is an existing php file RewriteRule ^(.*)$ $1.php # rewrite index to index.php

이렇게 한다면 php생략으로 접속이 가능하게 한다.

태그

, , ,

댓글0