2013-09-02 70 views
7

Tôi đã thực hiện rất nhiều thời gian. Nhưng hơn tôi cũng bị mắc kẹt ở đây một lần nữa (trong một máy chủ khác nhau) và không thể tìm ra vấn đề là gì.Xóa index.php khỏi URL trong Codeigniter

Hoàn thành chỉnh sửa htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /glt.me/CI/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /glt.me/CI/index.php/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
ErrorDocument 404 /index.php 
</IfModule> 
  • mô-đun viết lại được kích hoạt (theo perons chăm sóc khách hàng nói)
  • Lỗi:

    máy chủ nội bộ Lỗi

    Máy chủ gặp phải một nội lỗi hoặc cấu hình sai và không thể hoàn thành yêu cầu của bạn.

    Vui lòng liên hệ với quản trị viên máy chủ, [email protected] và thông báo cho họ về thời gian xảy ra lỗi và bất kỳ điều gì bạn có thể đã làm có thể gây ra lỗi.

    Thông tin thêm về lỗi này có thể có sẵn trong nhật ký lỗi máy chủ.

    Ngoài ra, gặp phải lỗi Lỗi máy chủ nội bộ 500 trong khi cố gắng sử dụng ErrorDocument để xử lý yêu cầu.

Kiểm tra trường hợp này:

http://glt.me/CI/test 
http://glt.me/CI/index.php/test 
+1

Bạn cần phải kiểm tra các bản ghi lỗi của bạn để xem những gì gây ra nó –

+1

@JonLin - Đoán là niềm vui hơn. Kiểm tra nhật ký giống như tài liệu đọc: chỉ có người yếu làm điều đó ;-) –

Trả lời

6

Đây là cách đơn giản và nó hoạt động tốt để loại bỏ index.php từ url của bạn

RewriteEngine on 
RewriteCond $1 !^(index\.php|uploads|css|js|lib|img|bootstrap|robots\.txt) 
RewriteRule ^(.*)$ /manage/index.php/$1 [L] 

instead of manage put your own application folder name. 
+0

Đã làm việc. Đã xóa miền khỏi dòng RewriteRulke. RewriteRule^(. *) $ /CI/index.php?/$1 [L] – TechCare99

+0

Tôi đã thử mã này 'RewriteRule^(. *) $ Index.php/$ 1 [L]' Nhưng tôi vẫn có thể xem trang theo cả hai cách http://www.domain.com/about-us, http://www.domain.com/index.php/about-us và http://www.domain.com /index.php?/about-us –

+0

tạo lỗi SEO tức là thẻ tiêu đề trùng lặp và mô tả meta trùng lặp –

1

kiểm tra đầu tiên cho dù apache của bạn đang hỗ trợ mod_rewrite. Nếu có, hãy thêm tệp .htaccess. Tệp tin .htaccess của tôi là:

DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

Cuối cùng trong tệp cấu hình, thay đổi base_url của bạn, xóa index.php khỏi đó nếu bạn đã thêm.

2

Sử dụng mã htaccess sau để loại bỏ index.php từ url CodeIgniter bạn

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

không. cùng một vấn đề. – TechCare99

2

Dù bạn khách hàng xác nhận mô-đun viết lại đang làm việc, những gì bạn không xác nhận nó cho mình, làm cho một tập tin php trên thư mục gốc của dự án với mã dưới đây và cố gắng duyệt tập tin.

<?php 
if(!function_exists('apache_get_modules')){ 
     echo 'Rewrite module not available'; 
}else{ 
    if(in_array('mod_rewrite',apache_get_modules())) 
     echo 'Rewrite module enabled'; 
} 
+0

nó được kích hoạt .. – TechCare99

0
DirectoryIndex index.php 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 
RewriteRule ^pages/.*$ http://localhost/test/? [R=301,L] 
0

tôi muốn đóng góp ở đây như tôi đã gặp khó khăn trong bản thân mình. Tôi đang sử dụng IIS5.1 chỉ phát triển (cao không được khuyến khích!)

1- Đảm bảo rằng bạn config.php tập tin đã:

$config['index_page'] = ''; 

2- Ứng dụng của tôi không nằm trong thư mục gốc, nó ở localhost/CodeIgniter /. Tôi đã cập nhật config.php thành:

$config['base_url'] = 'http://localhost/CodeIgniter/'; 

3- Bạn cần có khả năng Viết lại. Điều này được nhúng với hầu hết các máy chủ, nhưng IIS5.1 cần một công cụ riêng biệt.Tôi đã sử dụng: IIS Mod-Rewrite bởi micronovae. Nó hoàn toàn miễn phí miễn là bạn sử dụng nó trên localhost

tôi đặt đoạn mã sau (Thay vì CodeIgniter, đặt tên của thư mục):

RewriteEngine on 
RewriteCond $0 !^/CodeIgniter/(css|js|swf|images|system|tools|themes|index\.php) [NC] 
RewriteRule ^/CodeIgniter/(.*)$ /CodeIgniter/index.php/$1 [L] 

Nếu ứng dụng của bạn là cội rễ, mã bạn nên sử dụng sẽ đơn giản là:

RewriteEngine on 
RewriteCond $0 !^(css|js|swf|images|system|tools|themes|index\.php) [NC] 
RewriteRule ^(.*)$ index.php/$1 [L] 

Hy vọng điều đó sẽ hữu ích.

0

Chỉ ba bước được yêu cầu xóa index.php khỏi url trong Codeigniter trong môi trường WAMP.

1) Tạo file .htacess song song với người giữ ứng dụng và chỉ cần sao chép qua đoạn mã sau:

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) Thay đổi $ config [ 'index_page'] để trống trong file config.php trong thư mục ứng dụng như bên dưới:

$config['index_page'] = ''; 

3) Bật "rewrite_module" của apache.

Khởi động lại apache của bạn và thực hiện xong.

chi tiết: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/