2016-07-05 7 views
1

시스템에 잠겨 있습니다 ... 매개 변수가있는 URL을 갖도록 config.php 파일의 설정을 변경했습니다. 갑자기 URL 매개 변수를 전달하는 ID를 표시하는 제품 컨트롤러가 있습니다. 그래서 나는 htaccess로 파일에 넣고CodeIgniter URL 다시 쓰기가 작동하지 않습니다.

http://localhost:8888/mywebsite/product/my-product-12

:

http://localhost:8888/mywebsite/index.php?c=product&m=index&id_product=12

이 URL은 내가 유형의 URL을 얻으려면 지금 작동

RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?c=product&m=index&id_product=$2 [L] 

을하지만, 페이지에 다음이 표시됩니다. 요청한 URL /index.php/product/my-product-12.html을 찾지 못했습니다. on thi 서버.

내 htaccess로 파일 :

#Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

RewriteCond $1 !^(index\.php|public|\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1   [L,QSA] 

RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?c=product&m=index&id_product=$2 [L] 

내 config.php 파일 :

<?php 

$config['base_url'] = 'http://localhost:8888/mywebsite/'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'QUERY_STRING'; 
$config['url_suffix'] = ''; 
$config['enable_hooks'] = TRUE; 
$config['allow_get_array']  = TRUE; 
$config['enable_query_strings'] = TRUE; 
$config['controller_trigger'] = 'c'; 
$config['function_trigger']  = 'm'; 
$config['directory_trigger'] = 'd'; 
$config['rewrite_short_tags'] = FALSE; 

?> 

답변

0

가 RewriteBase 후 새 RewriteRule의를 넣어 :

RewriteEngine on 
RewriteBase/

RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+)$ index.php?c=product&m=index&id_product=$2 [L] 

RewriteCond $1 !^(index\.php|public|\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1   [L,QSA] 

을 먼저 다시 작성해야하기 때문에 ~ index.php?c=product

+0

답변 해 주셔서 감사합니다. 그럴 경우 내 페이지에 다음과 같은 오류 메시지가 표시됩니다. 을 찾을 수 없음 요청한 URL /index.php를이 서버에서 찾을 수 없습니다. – xenos92

+0

'.html '없이 시도하십시오. 귀하의 코드에 있지만 귀하의 예전 URL에 없습니다. – Croises

+0

같은 결과 ... 이해가 안됩니다. ( – xenos92

관련 문제