본문 바로가기
컴퓨터공학/네트워크

웹서버 | 아파치 mode_rewrite 확장 모듈

by KISCH 2020. 2. 8.
반응형


아파치



mod_rewrite

❛ 규칙 기반으로 URL을 동적으로 전환및 재작성 할 수 있는 아파치 확장 모듈

 Clean URL, 대규모 가상 호스트, 웹사이트 재배치, 조건에 따른 처리
 RewriteEngine On/Off : 모듈의 사용 여부 지정
 RewriteLog, RewriteLogLevel : 로그를 남길 파일을 지정
 RewriteRule 문법
RewriteRule pattern target_url [flag, flag, flag, ...]


Rewriteengine확인방법

PhpinfoLoaded Modules 에서 mod_rewrite 확인



RewriteCond

❛ 예외규정

RewriteCond $1!^(index\.php|public|favicon\.ico)
Index.php, public 디렉토리, favicon.ico파일에룰을 적용치 말라


RewriteRule

htaccess 파일은 index.php와동일 폴더



index.php 제거


https://codeigniter.com/user_guide/general/urls.html

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

 

RewriteEngineOn
RewriteBase /

#Removes access to the system folder by users.
#Additionally this will allow you to create aSystem.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamedyour system folder.


RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

#Checks to see if the user is attempting toaccess a valid file,
#such as an image or css document, if this isn'ttrue it sends the
#request to index.php

#아래 두 구문 디렉토리나 파일이 실제 존재하면 해당 파일을 서빙하고 그렇지 않으 requesturi index.php로 리디렉션


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

 

.htaccess 파일을 위와 같이 바꿈

system/applications/config/config.php에서

$config['index_page']= 'index.php  변경

 

- images,include, data, layouts, views 렉토리는 적용제외


RewriteEngine On 


RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !^/images/(.*)$

RewriteCond %{REQUEST_URI} !^/include/(.*)$

RewriteCond %{REQUEST_URI} !^/data/(.*)$

RewriteCond %{REQUEST_URI} !^/layouts/(.*)$

RewriteCond %{REQUEST_URI} !^/views/(.*)$


RewriteRule ^(.*)$ /index.php/$1 [L] 

 

<?phpdefined('BASEPATH') OR exit('Nodirect script access allowed');

 

//  설정은 기본 컨트롤러를 설정하는 곳이다. 쉽게 말해 도메인 주소만 입력했을  실행할 기본 컨트롤러를 설정하는 곳이다


 $route['default_controller'] = 'welcome';

  

// 이 설정은 컨트롤러가 존재하지 않을시 보여줄 컨트롤러를 설정하는 곳이다. 기본값은 CI  404 페이지다


 $route['404_override'] = '';

 

// 이 설정은 컨트롤러 그리고 메소드의 uri 문자열에 '-'(하이픈)  있을경우 '_'(언더바)  바꾸어준다.  기능을

사용하기 위해서는 TRUE  설정해주면된다.

// ex)http://test.com/index.php/main/port-folio => http://test.com/index.php/main/port_folio

// ex)http://test.com/index.php/port-folio/index => http://test.com/index.php/port_folio/index


$route['translate_uri_dashes']= FALSE;

 ?>


 




반응형

댓글