2013-08-14 3 views
0

Привет всем им пытаются скрыть index.php из URL, ну что-то вроде этого:удалить index.php из URL в Codeigniter на хост-сервере

я хочу: mydomain.com/index.php/mycontroler

быть похожим: mydomain.com/mycontroler

вот мой .htaccess

Options -Multiviews 
Options +FollowSymLinks 

RewriteEngine On 

RewriteBase/

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


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

RewriteCond $1 !^(index\.php|images|robots\.txt|css) 

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

А вот мой conf.php

$config['index_page'] = ''; 
$config['uri_protocol'] = 'REQUEST_URI'; 

проблема заключается в том, что работает хорошо в местном, но не на сервере

здесь расположение моих файлов

- bin 
- etc 
- mail 
- public_ftp 
- public_html 
-- application 
-- assets 
-- system 
-- .htaccess 
-- index.php 

Помощь ребята

ответ

2
$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/'; 
$config['index_page'] = ''; 

Htaccess:

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

, если по-прежнему получаю проблемы попробуйте изменить:

$config['uri_protocol'] = 'REQUEST_URI'; 
to 
$config['uri_protocol'] = 'AUTO'; 

или somenthing отличается более (в config.php вы найдете все доступные варианты, чтобы попытаться для параметра uri_protocol)

0

Вот .htaccess материал ,

<IfModule mod_rewrite.c> 

    Options +FollowSymLinks -Indexes 
    RewriteEngine on 

    # NOTICE: If you get a 404 play with combinations of the following commented out lines 
    #AllowOverride All 
    #RewriteBase/

    # Restrict your site to only one domain 
    #RewriteCond %{HTTP_HOST} !^www\. 
    #RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

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

    <IfModule mod_php5.c> 
     RewriteRule ^(.*)$ index.php/$1 [L] 
    </IfModule> 

    <IfModule !mod_php5.c> 
     RewriteRule ^(.*)$ index.php?/$1 [L] 
    </IfModule> 

</IfModule> 

#prevent access to htaccess file 
<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 

#disable directory browsing 
Options All -Indexes 
IndexIgnore * 

И в config.php

  1. Установить базовый URL, как 'http://www.example.com/'
  2. Set $ ​​конфиге [ 'index_page'] на пустой
  3. строки Set $ ​​конфиге [ 'uri_protocol'] = 'REQUEST_URI'
+0

Я сделал, но все еще не работает wana – Coldfire

+0

@AsmaeDahraoui: Можете ли вы упомянуть y наша версия? –

+0

его codeigniter 2, а для сервера его общий хостинг-сервер с php 5.4 – Coldfire

0

все мой .htaccess

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

и вы должны убедиться, что свойство AllowOverride установлено правильно, например: AllowOverride ALL в своем сегменте httpd.conf Каталог

0

сделать следующие изменения в корневой файл .htaccess

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php/$0 [PT,L] 

Он работал для меня.

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