2013-08-13 2 views
6

Я использовал CodeIgniter в XAMPP. Там не было никаких проблем, чтобы перенаправить к функции URL (например, function1):Как удалить index.php в Wamp?

http://localhost/function1 

Когда я изменил WAMP, я получил проблему. Я не мог перенаправить на function1. Однако function1 все еще доступны по адресу:

http://localhost/index.php/function1 

Как настроить WAMP и CodeIgniter для удаления index.php? Для того, чтобы я мог запустить function1, поскольку я запускаю с помощью XAMPP.

спасибо.

+2

В чем проблема: http://ellislab.com/codeigniter/user-guide/general/urls.html? –

ответ

10

Пожалуйста, попробуйте следующее:

1) Создать файл .htaccess параллельно в папку приложения и просто скопировать вставьте следующий код:

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

2) Изменить $config['index_page'] для заготовки в config.php в папке приложения как показано ниже:

$config['index_page'] = ''; 

3) Включить "rewrite_module" Апача. Нажмите на символ WAMP -> Apache -> модули Apache -> rewrite_module

Теперь вы можете получить доступ к вашему сайту без index.php в url.

2

Создать .htaccess файл, если вы не уже есть один и добавьте в него следующий код:

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

Убедитесь, что вы поместите его в том же каталоге, что и index.php.

2

Только три этапа требуют удаления index.php из url в Codeigniter в среде WAMP.

1) Создать .htacess файл параллельно с держателем приложения и просто скопировать мимо следующий код:

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

2) Изменение $ конфиг [ «index_page»] для заготовки в config.php в папке приложения, как ниже:

$config['index_page'] = ''; 

3) Включить «rewrite_module» apache.

Перезапустите свой апач и выполните его.

Детали: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/

2

Правило mod_rewrite предложил в официальной документации CodeIgniter по адресу http://ellislab.com/codeigniter/user-guide/general/urls.html который

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

работал отлично для меня на WAMP

Это будет также работать:

<IfModule mod_rewrite.c> 

    Options +FollowSymLinks 
    RewriteEngine on 

    # Send request via index.php 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

В две вариации, единственное различие - это условие. В принципе, важно правило перезаписи. Условие может зависеть от вашего требования.

Оба эти не работали для меня раньше на WAMP. Однако проблема была в настройках Apache. rewrite_module не был включен. Итак, проверьте, включено ли это. Вы можете проверить, разрешено ли это с помощью phpinfo() и проверить список загруженных модулей.

Если он не включен, вы можете включить его с помощью диспетчера WampServer (доступ к его из панели задач) Перейти к Apache> Модули Apache и проверить «rewrite_module»

ИЛИ

Открыть httpd.conf и проверьте, не расколото ли LoadModule rewrite_module modules/mod_rewrite.so.

Вам необходимо перезапустить WAMPserver, чтобы активировать изменения.

+0

Второе решение отлично работало на моей установке WAMP CI 2.2.0. Просто скопировал его в мой .htaccess, и он сразу сработал. Кажется, работать без RewriteBase, который мне нравится. – DEUTSCHWULF

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