2012-01-08 4 views
0

Существует много руководств, которые ссылаются на удаление index.php из url. Но я хочу сделать один шаг вперед.CodeIgniter - URL-адрес перезаписи

Ссылка: www.example.com/index.php/controller/function/single-variable Я хочу: www.example.com/some-name-that-i-put/single-variable

Я не могу найти учебник, чтобы делать такую ​​вещь. Как это сделать?

ответ

3

я не был уверен, были ли вы желание сделать прямой URL переписывает, как CI делает его из коробки или нет ... но это то, как вы делаете URL Перезапись:

ваш класс/функция/Идентификация example.com/news/article/13 переставляет на: example.com/class/function/ID

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

вы можете установить это, делая две вещи: в файле config.php под приложения/Config/редактировать эти:

approx line 80: $config['uri_protocol'] = 'REQUEST_URI'; // i set this to request_URI as it always works for me.. 
approx line 93: $config['url_suffix'] = '.html'; // this is optional, if you want /13.html 
approx line 62: $config['index_page'] = ''; //set this to blank 

создать .htaccess в корне HTTP:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

Это, как вы URI маршрута изменения

, если вы хотите изменить организацию URI, вы можете использовать URI маршруты определенную в route.php, как описано здесь: http://codeigniter.com/user_guide/general/routing.html

+0

Изменение маршрута URI - это то, что я искал. – gzg

+1

В этом случае вы просто используете регулярное выражение для определения переназначения. Руководство пользователя выкладывает его на простом английском языке. – gorelative

0

Попробуйте в вашем файле конфигурации вместо них

 $config['uri_protocol'] = 'AUTO'; 
    $config['url_suffix'] = ''; 
    $config['index_page'] = ''; 
    $config['allow_get_array'] = TRUE; 
    $config['enable_query_strings'] = FALSE; 

после этого сделать файл .htaccess в корневом каталоге и поместить этот

RewriteEngine On

RewriteCond% {REQUEST_FILENAME}! -f

RewriteCond% {REQUEST_FILENAME}! -d

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

это будет Определенно помогите вам

Смежные вопросы