2010-07-20 30 views
5

Tôi đang cố gắng sử dụng Codeigniter OpenID library và mọi thứ hoạt động tốt với cấu hình mặc định là CI mà không cần .htaccess.Codeigniter, OpenID và .htaccess

Khi tôi loại bỏ index.php bằng cách thay đổi config.php.htaccess tôi nhận được 404 Page Not Found khi tôi cố gắng xác minh openid của tôi (http://ci.dlsb.eu/test/)

Ai có thể cho tôi biết nơi tôi sai?

config.php

$config['index_page'] = ""; 

.htaccess

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

Trả lời

5

RewriteRule nỗ lực của bạn để tạo ra PATH_INFO trong một bối cảnh cho mỗi thư mục, trong đó, từ những gì tôi có thể nói, xảy ra quá trễ trong giai đoạn xử lý yêu cầu để hoạt động chính xác.

Giải pháp tốt nhất là chỉ cần không làm điều này, như CodeIgniter không yêu cầu nó thực hiện chức năng:

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

CodeIgniter sẽ có thể tìm ra những gì yêu cầu đúng là ngày của riêng mình, với điều kiện bạn bên trái $config['uri_protocol'] được đặt thành AUTO. Nếu không, bạn nên đặt thành AUTO hoặc REQUEST_URI.

+0

Ok, tôi đã sửa lỗi .htaccess của mình, $ config ['uri_protocol'] được đặt thành REQUEST_URI, nhưng tôi vẫn gặp lỗi tương tự ... –

+1

Vâng, tôi có thể hơi yếu. Đó là vì URL mà biểu mẫu gửi đến không có dấu gạch chéo, vì vậy định tuyến của CodeIgniter không hoạt động bằng cách nào đó. Tôi sẽ kiểm tra xem tại sao điều đó có thể và cho bạn biết cách bạn có thể khắc phục nó. –

+1

Khi tôi đặt $ config ['url_suffix'] = "/"; mọi thứ đều ổn. Cảm ơn Tim! –