CI 묻고 답하기

제목 uri 셋팅 관련
글쓴이 겐자이 작성시각 2014/08/03 19:45:53
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 16943   RSS
index.php 를 없애고 사용하려고 및의 셋팅을 했는데, 여전히 index.php 를 타고 가야 정상적으로 페이지가 열립니다.


$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");

$config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);

/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';

/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string.  The default setting of 'AUTO' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'AUTO'            Default - auto detects
| 'PATH_INFO'        Uses the PATH_INFO
| 'QUERY_STRING'    Uses the QUERY_STRING
| 'REQUEST_URI'        Uses the REQUEST_URI
| 'ORIG_PATH_INFO'    Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol']    = 'AUTO';
 다음글 컨트롤러 -> 뷰 데이터 넘기기 질문입니다! (5)
 이전글 uri 정책때문에 고민입니다. (4)

댓글

코드이그 / 2014/08/03 21:22:31 / 추천 0
index 를 죽이기 위해서는
코드이그나이터 설정도 중요하지만
서버 셋팅 및 <span neue,helvetica,arial,sans-serif"="">htaccess 파일의 유무도 중요합니다.

아래 웅파님의 강좌 링크를 참고하시고 따라하시면 될것 같네요.

http://www.codeigniter-kr.org/lecture/view/213/page/1/q/index.php 없애기
 
darkninja / 2014/08/03 23:25:20 / 추천 0
실제로 index.php 없이 사용가능하게 해주는 역할은
.htaccess 파일이 합니다.
제가 사용하는 .htaccess 파일입니다.
 
<IfModule mod_rewrite.c>

# Turn on URL rewriting
RewriteEngine On

# If your website begins from a folder e.g localhost/my_project then
# you have to change it to: RewriteBase /my_project/
# If your site begins from the root e.g. example.local/ then
# let it as it is
RewriteBase /htdocs-ci3/

# Protect application and system files from being viewed when the index.php is missing
RewriteCond $1 ^(application|system|private|logs)

# Rewrite to index.php/access_denied/URL
RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

# Allow these directories and files to be displayed directly:
RewriteCond %{REQUEST_URI} !^(/htdocs-ci3/index\.php|/img/|/css/|/fonts/|/js/|/daumeditor/|/ckeditor/|/kcfinder/|/uploadurl/|/syntax/|/captcha/|/icons/|/popup)

# No rewriting
##RewriteRule ^(.*)$ - [PT,L]
 
# Rewrite to index.php/URL
RewriteRule ^(.*)$ /htdocs-ci3/index.php/$1 [PT,L]

</IfModule>
j:\htdocs\htdocs-ci3/index.php
constants.php 에서 경로를 미리정의 해놓으면
수정하기가 쉽습니다.
마냐님의 소스에서 확인가능합니다.
http://www.cikorea.net/source/view/401
/* 사용자 정의 */
define('ROOT_DIR', '/htdocs-ci3/');

define('DOCUMENT_ROOT', $_SERVER['DOCUMENT_ROOT'].ROOT_DIR);

define('HTTP_HOST', 'http://'.$_SERVER['HTTP_HOST'].ROOT_DIR); 

define('IMG_PATH', 'img');
define('JS_PATH', 'js');
define('CSS_PATH', 'css');
define('EDITOR_PATH', 'daumeditor');
define('CKEDITOR_PATH', 'ckeditor');
define('SYNTAX_PATH', 'syntaxhighlighter');
define('WEATHER_PATH', 'wimg');

define('UPLOAD_PATH', 'uploadurl');

define('IMG_DIR', ROOT_DIR.IMG_PATH);
define('JS_DIR', ROOT_DIR.JS_PATH);
define('CSS_DIR', ROOT_DIR.CSS_PATH);
define('EDITOR_DIR', ROOT_DIR.EDITOR_PATH);
define('CKEDITOR_DIR', ROOT_DIR.CKEDITOR_PATH);
define('SYNTAX_DIR', ROOT_DIR.SYNTAX_PATH);
define('WEATHER_DIR', ROOT_DIR.WEATHER_PATH);

define('UPLOAD_URL', ROOT_DIR.UPLOAD_PATH);

define('DOCUMENT_UPLOAD_URL', DOCUMENT_ROOT.UPLOAD_URL);
css파일이나 js파일 또는 php파일을 불러올때,
각종 링크에서
'/htdocs-ci3' 이 경로를 추가하여 되는 경우가 있고
추가 안해도 되는 경우(ci 에서 부르는 경우등)가 있습니다.
두가지 경우 뿐이니 해보면 알수 있겠죠.
서브 디렉토리에 설치하지 않고
바로 htdocs에 설치한 경우는
'/htdocs-ci3' 이걸 지우면 됩니다.

아 맞는지는 저도 몰라요...
전 주워다가 이렇게 쓰고 있어요!