2010-07-20 15 views
5

Próbuję użyć Codeigniter OpenID library i wszystko działa poprawnie z domyślną konfiguracją CI bez .htaccess.Codeigniter, OpenID i .htaccess

Kiedy usunąć index.php zmieniając config.php i .htaccess dostaję 404 Page Not Found gdy próbuję zweryfikować OpenID (http://ci.dlsb.eu/test/)

Czy ktoś może mi powiedzieć, gdzie się mylę?

config.php

$config['index_page'] = ""; 

.htaccess

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

Odpowiedz

5

Twoje RewriteRule próbach stworzenia PATH_INFO w kontekście per-katalogu, który, z tego co mogę powiedzieć, występuje zbyt późno w fazie przetwarzania wniosku, aby działał poprawnie.

Najlepszym rozwiązaniem jest nie tylko to zrobić, jak CodeIgniter nie wymaga go do działania:

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

CodeIgniter powinien być w stanie dowiedzieć się, co właściwa prośba była na własną rękę, pod warunkiem pozostawiono $config['uri_protocol'] ustawiono na AUTO. Jeśli nie, powinieneś ustawić go na AUTO lub REQUEST_URI.

+0

OK, poprawiłem .htaccess, $ config ['uri_protocol'] jest ustawione na REQUEST_URI, ale nadal mam ten sam błąd ... –

+1

Tak, mogłem być trochę poza bazą. Dzieje się tak dlatego, że adres URL, na który składa się formularz, nie ma końcowego ukośnika, więc routing CodeIgnitera w jakiś sposób nie działa. Sprawdzę, dlaczego tak jest, i dam ci znać, jak możesz to naprawić. –

+1

Po ustawieniu $ config ['url_suffix'] = "/"; wszystko działa dobrze. Dzięki Tim! –

Powiązane problemy