2011-11-25 155 views
1

沒有運氣從url中刪除index.php文件。CodeIgniter:無法從URL中刪除index.php

比如我想通過http://domain.com/welcome

嘗試過當目前得到一個404錯誤訪問「歡迎」控制器。

然而,此刻我只能訪問是通過http://domain.com/index.php/welcome

我有這個目前這是我從CI用戶指南得到了我的.htaccess文件:

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

我有的.htaccess文件位於應用程序文件夾上方的目錄中。

directory screenshot

任何幫助將是巨大的。

回答

0

我有以下的.htaccess

<IfModule mod_rewrite.c> 
    AcceptPathInfo On 

    RewriteEngine On 

    ### Canonicalize codeigniter URLs 

    # If your default controller is something other than 
    # "welcome" you should probably change this 
    # RewriteRule ^(welcome(/index)?|index(\.php)?)/?$/[L,R=301] 
    # RewriteRule ^(.*)/index/?$ $1 [L,R=301] 

    # Removes trailing slashes (prevents SEO duplicate content issues) 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.+)/$ $1 [L,R=301] 

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

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

    # Without mod_rewrite, route 404's to the front controller 
    ErrorDocument 404 /index.php 

</IfModule> 

另外,請確保你的httpd.conf的AllowOverride指令沒有被設置爲無,因爲這會阻止你的.htaccess規則來readed。

+0

我應該如何設置AllowOverride? – ritch

+0

我不知道什麼是你最好的選擇,請參閱:http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride 我使用「全部」,所以我可以改變我需要在mi站點上使用.htaccess –