아파치 httpd 웹서버 확장자 숨김
https://devscb.com/test.php 라는 페이지를 서비스 할때,
https://devscb.com/test 와 같이 확장자 없이 동일한 페이지를 서비스할 수 있도록 설정하고자 합니다.
아파치 설정 변경
이를 위해서는 apache conf 파일을 아래와 같이
Options Indexes FollowSymLinks MultiViews를 설정해주면 됩니다.
# 기본 사용법
<Directory /var/www>
Options MultiViews
AddType application/x-httpd-php .php
</Directory>
# Virtual host사용하는 경우
<VirtualHost *:80>
Options MultiViews
AddType application/x-httpd-php .php
</Directory>
config 파일 위치는 리눅스 기준으로 보통 아래 디렉토리에 위치해있습니다
/etc/httpd/conf/httpd.conf (CentOS 계열)
/etc/apache2/apache2.conf (Ubuntu계열)
만일 해당 위치에 존재하지 않다면, 아래와 같은 명령어를 사용하여 확인할 수 있습니다.
- Fedora 계열
httpd -V | egrep "(HTTPD\_ROOT|SERVER\_CONFIG\_FILE)" -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf"
- Debian계열
apache2 -V | egrep "(HTTPD\_ROOT|SERVER\_CONFIG\_FILE)" -D HTTPD_ROOT="/etc/apache2" -D SERVER_CONFIG_FILE="apache2.conf"
Options MultiViews 의 의미
서버가 확장자에 관계없이 파일이름을 자동으로 확인하여서 실행해줍니다.
이 옵션에 대한 동작은 다음과 같습니다.
1) /some/dir/foo에 대한 요청을 받은 후에,
서버에서 /some/dir/foo가 존재하지 않을 경우,
서버는 디렉토리에서 이름이 foo.*인 파일들을 모든 포함하는 가상의 type map을 만든다.
2) 클라이언트가 요청한 media type과 content-encoding을 확인하여 가장 적합한 파일을 선택하여 실행합니다.
기타 참고 옵션들
1) Indexes:
index.php와 같이 DirectoryIndex가 없는 Directory에 접근 시 Directory의 내용이 표시됩니다.
보안 문제가 될 수 있으므로, 사용하지 않는것을 추천합니다.
2) FollowSymLinks:
아파치가 심볼릭 링크를 사용할 수 있게 합니다.
보안 문제가 될 수 있으므로, 사용하지 않는것을 추천합니다.
AddType application/x-httpd-php .php 의 의미
php확장자가 붙은 파일은 PHP 스크립트 파일로 생각하고,
PHP 엔진을 통해서 실행한 후 그 결과를 클라이언트로 전송하라는 의미입니다.
아래와 같이 여러 개의 확장자를 지정할 수도 있습니다.
AddType application/x-httpd-php .php .php3 .html
#apache,#httpd,#webserver,#php,#conf,#아파치,#웹서버
Hide extension on Apache httpd server, hide apache extension, use without extension, hide php extension, use without apache exte
Apache httpd web server extension hiddenWhen serving the page https://devscb.com/test.php,We would like to set up the same page as https://devscb.com/test without an extension. Change Apache settings
devscb.com
'개발팁' 카테고리의 다른 글
윈도 크롬 탭 메모리 사용량 표시, 크롬 탭 cpu 사용량 확인, cpu 점유율 확인 (1) | 2023.11.30 |
---|---|
csv 파일 mysql/mariadb로 insert하기 (0) | 2023.11.06 |
mariadb / mysql 신규계정생성 및 database 생성 (0) | 2023.10.31 |
윈도에서 방화벽 해제 여부 확인, 윈도우 포트 오픈 확인, powershll 포트 오픈 확인 (1) | 2023.10.27 |
php 에서 named parameter sql 간단히 사용하기 (0) | 2023.10.25 |
댓글