删除codeigniter中的index.php

时间:2013-02-05 00:38:32

标签: php .htaccess codeigniter

我使用下面的代码删除了.htaccess文件中codeigniter中的index.php。但我感到困惑的是我应该在哪里使用该文件。我应该在应用程序外部或应用程序内部的www文件夹中使用它。

我在所有地方都使用过它,但它有效,但是它正在弄乱我的css或说基础文件夹。我怎样才能克服这个问题。我应该使用html基本标签吗?

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

修改

我的文件夹结构是

basefolder
  -application
  -css
  -js
  -images   
  -system
.htaccess
index.php

5 个答案:

答案 0 :(得分:2)

您可以添加排除所有现有文件的重写条件:

答案 1 :(得分:1)

使用此

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

如果不起作用,请检查enabled mod_rewirte

中的phpinfo();

如果它还不起作用,请尝试将$config['uri_protocol']='AUTO'更改为第40/54行中列出的application/config/config.php文件中的一个:

|
| 'AUTO'            Default - auto detects
| 'PATH_INFO'       Uses the PATH_INFO
| 'QUERY_STRING'    Uses the QUERY_STRING
| 'REQUEST_URI'     Uses the REQUEST_URI
| 'ORIG_PATH_INFO'  Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol'] = 'AUTO';

有时我使用:REQUEST_URI代替AUTO

答案 2 :(得分:0)

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

这假定css与index.php等在同一目录中。此规则取决于您的文件结构。如果您使用目录树的示例更新问题,我可以修改规则。

由于你提到它有用但不应该让它变得混乱,所以不应该有其它的配置。

应该注意的是,粘贴的这个是我的CI htaccess文件中唯一的东西,我的工作正常。

另外,请参阅Will的评论。我的配置网址后缀始终为“”

答案 3 :(得分:0)

我的解决方案,CI系统向上移动(不在网上公开),应用程序是公共的,.htaccess用于每个子域(在根目录中),但它取决于您的结构(存在许多解决方案)

RewriteBase /
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] 

答案 4 :(得分:0)

复制并粘贴.htaccess文件中的代码

选项+ FollowSymLinks

RewriteEngine On

选项 - 索引

RewriteCond%{THE_REQUEST} ^ [A-Z] {3,9} \ /index.php \ HTTP / RewriteRule ^ index.php $ http://www.yoursite.com/ [R = 301,L]