删除codeigniter中的index.php
我使用下面的代码删除了.htaccess文件中codeigniter中的index.php。但我感到困惑的是,我应该在哪里使用该文件。我应该在应用程序外部的www文件夹中使用它,还是在应用程序内部使用它 我在所有地方都用过它,它很管用,但是它把我的css或者基本文件夹弄乱了。我怎样才能克服这个问题。我应该使用html基标记吗删除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 ^(.*)$ /
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']设置为“”