2014-02-18 81 views
0

我在LAMPP堆棧下使用CodeIgniter。CodeIgniter從基址中刪除index.php

我有以下設置爲我的BaseURL

http://example.com/subfolder 

這是我的文件夾結構

root 
| 
| 
ci_engine 
public_html 
| 
|----subfolder 
|  | 
|  | 
|  |------applications, index.php, .htaccess 
public_ftp 
| 
| 
other_stuff 

以下是我的.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    #Removes access to the system folder by users. 
    #Additionally this will allow you to create a System.php controller, 
    #previously this would not have been possible. 
    #'system' can be replaced if you have renamed your system folder. 
    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    #When your application folder isn't in the system folder 
    #This snippet prevents user access to the application folder 
    #Submitted by: Fabdrol 
    #Rename 'application' to your applications folder name. 
    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    #Checks to see if the user is attempting to access a valid file, 
    #such as an image or css document, if this isn't true it sends the 
    #request to index.php 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    # If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 
    # Submitted by: ElliotHaughin 

    ErrorDocument 404 /index.php 
</IfModule> 

如果鍵入http://example.com/subfolder/controller/function

如果我輸入http://example.com/subfolder/index.php?/controller/function < <這就像一個魅力。

我會得到404錯誤。

我應該如何解決這一問題?

回答

0

htaccess的繼承人爲您

Options +FollowSymLinks 
Options -Indexes 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteCond $1 !^(index\.php) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

,並設置

$config['index_page'] = 'index.php'; 

$config['index_page'] = ''; 

使用sudo a2enmod rewrite && sudo service apache2 restart,使你的Mod重寫如果沒有啓用(Ubuntu的)。

Options -Indexes是可選的(只是爲了避免目錄列表)

0

您可以在這個頁面上您發現

$route['default_controller'] = "content/pages"; 

更改爲

$route['default_controller'] = ""; 

application/config/rought.php 

改變的index.html