2011-11-25 134 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 –