2013-08-14 2 views
2

Я имею дело с этим URL. Я работаю на proyect, где я есть этот URL:Код Igniter Clean URL

http://localhost/franca/menkenPh/index.php/controller/argument/argument 

Но мне нужно, что я превращается в нечто вроде:

http://localhost/franca/menkenPh/0/cirug 

Как я могу achive что?

Я пытаюсь сделать это на .htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /franca/menkenph/ 
RewriteCond %(REQUEST_FILENAME) !-f 
RewriteCond %(REQUEST_FILENAME) !-d 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

Но когда я иду в URL я хочу дать мне страница не найдена ошибка, и когда я делаю:

http://localhost/franca/menkenPh 

Это говорит мне, что аргументы пропущены.

Любой ключ?

+0

мы много получаю эту проблему, если и исправить ее, пожалуйста, поделитесь им в http://stackoverflow.com/questions/18236711/codeigniter-index-php-url-rewriting – karael

+0

Убедитесь 'mod_rewrite' [включен] (http://blog.blakesimpson.co.uk/read/8-mod-rewrite-on-localhost). –

+0

Включено .. –

ответ

0

Перейти к вашему приложению/config/config.php удалить index.php из базового url.

/* 
|-------------------------------------------------------------------------- 
| Base Site URL 
|-------------------------------------------------------------------------- 
| 
| URL to your CodeIgniter root. Typically this will be your base URL, 
| WITH a trailing slash: 
| 
| http://example.com/ 
| 
| If this is not set then CodeIgniter will guess the protocol, domain and 
| path to your installation. 
| 
*/ 
$config['base_url'] = 'http://localhost/franca/menkenPh'; 

/* 
|-------------------------------------------------------------------------- 
| 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'] = ''; 

Затем перейдите на маршрутах оных

$route['/(:any)/(:num)'] = "maincontroller/index/$1/$2"; 

Так метод должен быть индекс(), но не аргументы вообще просто использовать Ури класс и определить местонахождение этих двух Uri сегменты

$arg1 = $this->uri->segment(3,0); 
$arg2 = $this->uri->segment(4,0); 

Ваше основание для перезаписи должно быть

RewriteBase /franca/menkenph/ 
+0

Извините, я не сказал этого, но у меня есть этот маршрут: $ route ['site/(: any)'] = 'site/index/$ 1'; –

+0

Извините, но cirug - это аргумент, мне нужен URL-адрес контроллера/аргумента/аргумента :) –

+0

Извините, но как? –

0
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /franca/menkenPh/index.php?/$1 [L] 

Попробуйте HTAccess

+0

Не работает: /. –