[PHP] The Simplest PHP Router > Web/PHP/API

본문 바로가기
사이트 내 전체검색

Web/PHP/API

[PHP] The Simplest PHP Router

페이지 정보

작성자 sbLAB 댓글 0건 조회 3,387회 작성일 22-12-14 20:30

본문

The Simplest PHP Router [PHP 프레임워크 미 사용] 


2f2934f0788fc55cb30b19573c584bbb_1671017939_4843.jpg
 

아래 처럼 1번) .htaccess 생성 방법으로 할수 있으나  성능 상 비권장 => 2번) 방법을 이용  

□ 1번) 웹사이트 루트디렉토리(index.php와 같은 위치) .htaccess  파일생성


RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php [NC,L] 


[참고]

Apache mod_rewrite Introduction 

https://httpd.apache.org/docs/2.4/rewrite/intro.html#regex 

https://waspro.tistory.com/198


 Apache 웹서버 설정(httpd.conf)확인 

 

LoadModule rewrite_module modules/mod_rewrite.so    <== mod_rewrite.so 모듈활성화


ffab98863d30bca32406157d83b6c1e7_1671025494_1205.jpg
 


DocumentRoot "D:/xampp/htdocs"

<Directory "D:/xampp/htdocs/jp">

    Options Indexes FollowSymLinks Includes ExecCGI


    #

    # AllowOverride controls what directives may be placed in .htaccess files.

    # It can be "All", "None", or any combination of the keywords:

    #   AllowOverride FileInfo AuthConfig Limit

    #

    AllowOverride All        #All => .htaccess를 사용하겠다는 의미, None => 사용안함.


    Require all granted

</Directory>


□ 2번) .htaccess  파일을 생성하지 않고, 아파치 웹서버 httpd.conf 파일에 설정하는 것을 권장한다.

Apache 웹서버 설정(httpd.conf)확인 

LoadModule rewrite_module modules/mod_rewrite.so    <== mod_rewrite.so 모듈활성화


ffab98863d30bca32406157d83b6c1e7_1671025494_1205.jpg 


아파치 웹서버 httpd.conf 에서 설정 

.htaccess 를 사용하지 않을 것이므로  AllowOverride None 으로 설정한다. 

<Directory "D:/xampp/htdocs/jp">

   <IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php [NC,L]

   </IfModule>


   Options Indexes FollowSymLinks Includes ExecCGI

   AllowOverride None

   Require all granted

</Directory>



□ 웹사이트 루트디렉토리에 index.php 파일생성 

웹사이트 루트디렉토리 아래에 jmp 폴더생성 -> datapage 폴더생성 -> php스크립트들 저장 


<?php
/**
 * Router Index.php
 */

$request = $_SERVER['REQUEST_URI'];

switch ($request) {  
    case '/jmp/' :
        require __DIR__ . '/datapage/main.php';
        break;
    case '/jmp/madd' :
        require __DIR__ . '/datapage/madd.php';
        break;
    case '/jmp/mselect' :
        require __DIR__ . '/datapage/mselect.php';
        break;
    case '/jmp/mupdate' :
        require __DIR__ . '/datapage/mupdate.php';
        break;
    case '/jmp/mdel' :
        require __DIR__ . '/datapage/mdel.php';
        break;
    case '/jmp/tdc' :
        require __DIR__ . '/datapage/tdc.php';
        break;
    case '/jmp/tget' :
        require __DIR__ . '/datapage/tget.php';
        break;
    default:
        http_response_code(404);
        require __DIR__ . '/datapage/404.php';
        break;
}



[웹API 접근 url]





댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
345
어제
407
최대
1,279
전체
212,115

그누보드5
Copyright © sebom.com All rights reserved.