删除codeigniter中的index.php

删除codeigniter中的index.php,php,.htaccess,codeigniter,Php,.htaccess,Codeigniter,我使用下面的代码删除了.htaccess文件中codeigniter中的index.php。但我感到困惑的是,我应该在哪里使用该文件。我应该在应用程序外部的www文件夹中使用它,还是在应用程序内部使用它 我在所有地方都用过它,它很管用,但是它把我的css或者基本文件夹弄乱了。我怎样才能克服这个问题。我应该使用html基标记吗 RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /

我使用下面的代码删除了.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
这假设css与index.php等位于同一目录中。此规则取决于您的文件结构。如果你用一个目录树的例子来更新你的问题,我可以修改规则

应该没有其他配置需要,因为你提到它的工作,但只是把事情搞砸了

应该注意的是,粘贴的这个是我的CI-htaccess文件中唯一的东西,我的工作很好

另外,请参见威尔的评论。我的配置url后缀始终为“”

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

应该没有其他配置需要,因为你提到它的工作,但只是把事情搞砸了

应该注意的是,粘贴的这个是我的CI-htaccess文件中唯一的东西,我的工作很好


另外,请参见威尔的评论。我的配置url后缀始终为“”

您可以添加一个重写条件,该条件排除所有现有文件:

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

您可以添加一个重写条件,该条件排除所有现有文件:

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

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


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

用这个

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
如果不起作用,请检查您是否在
phpinfo()中启用了mod_rewirte

如果它还不能工作,请尝试将
$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\u URI
而不是
AUTO

使用这个

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
如果不起作用,请检查您是否在
phpinfo()中启用了mod_rewirte

如果它还不能工作,请尝试将
$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\u URI
而不是
AUTO

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

选项+FollowSymLinks

重新启动发动机

选项-索引

重写cond%{THE_REQUEST}^[A-Z]{3,9}\/index.php\HTTP/
重写规则^index.php$[R=301,L]

将下面的代码复制并粘贴到.htaccess文件中

选项+FollowSymLinks

重新启动发动机

选项-索引

重写cond%{THE_REQUEST}^[A-Z]{3,9}\/index.php\HTTP/
重写规则^index.php$[R=301,L]

它位于CI安装目录中。在您的情况下,它可能是www。您可以在重写规则中排除媒体文件夹。您能告诉我如何排除它们吗?这是一个codeigniter.htaccess,您可以使用。我更新了。只需将管道分隔的目录添加到条件中即可。它位于CI安装目录中。在您的情况下,它可能是www。您可以在重写规则中排除媒体文件夹。您能告诉我如何排除它们吗?这是一个codeigniter.htaccess,您可以使用。我更新了。只需将由管道分隔的目录添加到条件中即可。但是,就codeigniter而言,您还必须更新配置文件并将$config['url\u suffix']设置为“”。然而,就codeigniter而言,您还必须更新配置文件并将$config['url\u suffix']设置为“”