2013-08-13 32 views
6

Używam CodeIgniter w XAMPP. Nie było problemu, aby przekierować do adresu URL funkcji (np Function1):Jak usunąć index.php w Wamp?

http://localhost/function1 

Kiedy zmieniono na WAMP, mam problem. Nie mogłem przekierować do function1. Jednak Function1 jest nadal dostępna pod adresem:

http://localhost/index.php/function1 

Jak skonfigurować WAMP i CodeIgniter usunąć index.php? Aby móc uruchomić function1 podczas uruchamiania przy użyciu XAMPP.

Dziękuję.

+2

Na czym polega problem: http://ellislab.com/codeigniter/user-guide/general/urls.html? –

Odpowiedz

10

Spróbuj wykonać następujące czynności:

1) Utwórz plik .htaccess równolegle do folderu aplikacji i po prostu skopiuj wklej następujący kod:

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) zmiana $config['index_page'] na pusty w config.php w folderze aplikacji jak poniżej:

$config['index_page'] = ''; 

3) Włącz "rewrite_module" apache. Kliknij symbol WAMP -> Apache -> moduły Apache -> przepisanie

Teraz możesz uzyskać dostęp do swojej witryny bez adresu index.php w adresie URL.

2

Utwórz plik .htaccess jeśli nie już jeden i dodać ten kod w nim:

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

Upewnij się, że miejsce to w tym samym katalogu, co index.php.

2

Tylko trzy kroki są wymagane do usunięcia pliku index.php z adresu url w Codeigniter w środowisku WAMP.

1) Utwórz plik .htacess równolegle posiadacza aplikacji i po prostu skopiować przeszłość następującego kodu:

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) Zmiana $ config [ 'index_page'] na pusty w config.php w folderze aplikacji jako poniżej:

$config['index_page'] = ''; 

3) Włącz "przeprogramuj_moduł" apache.

Uruchom ponownie apache i gotowe.

Szczegóły: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/

2

Reguła mod_rewrite sugerowane w oficjalnej dokumentacji CodeIgniter pod adresem http://ellislab.com/codeigniter/user-guide/general/urls.html który jest

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

działało idealnie dla mnie na WAMP

to również działa:

<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> 

W se dwie odmiany, jedyną różnicą jest warunek. Zasadniczo, liczy się reguła przepisywania. Stan może zależeć od Twoich wymagań.

Oba te elementy nie działały dla mnie wcześniej w WAMP. Jednak problem był w ustawieniach Apache. przepisano_moduł nie został włączony. Sprawdź, czy jest włączona. Możesz sprawdzić, czy jest włączona przy pomocy phpinfo() i sprawdzić listę modułów załadowanych.

Jeśli nie jest włączona, można ją włączyć za pomocą menedżera -WampSerwer (dostępu do niego z paska zadań) Idź do Apache> Moduły Apache i sprawdź „rewrite_module”

LUB

Otwarte httpd.conf i sprawdź, czy odznaczono LoadModule rewrite_module modules/mod_rewrite.so.

Będziesz musiał ponownie uruchomić WAMPserver, aby aktywować zmiany.

+0

Drugie rozwiązanie działało idealnie na mojej instalacji WAMP z CI 2.2.0. Po prostu skopiowałem go do mojego .htaccess i zadziałało natychmiast. Wydaje się, że pracujesz bez RewriteBase, które lubię. – DEUTSCHWULF