无法从笨URL删除的index.php无法从笨URL删除的index.php(Cannot remo

2019-05-12 03:47发布

我的目录结构是/ var / WWW / CI /与文件夹下的CI的所有文件夹即,应用程序,系统。 曾经创造下CI .htaccess文件。

以下是在.htacess代码。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

不过本地主机/ CI /博客给出了404错误。 任何人都可以引导,以治所在今是错误的?

Answer 1:

请尝试以下

首先,请确保您设置类似如下的配置文件..

$config['index_page'] = '';

另外,还要确保mod_rewrite已在httpd.conf文件中启用,之后,覆盖位于项目的根文件夹没有与下面的代码的应用程序文件夹.htaccess文件..

RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1


Answer 2:

请确保您application/config/config.php ,这是设置如下文件:

$config['index_page'] = '';

同样做到这一点:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^CI/(index\.php|public|images|robots\.txt|css)
    RewriteRule ^CI/(.*)$ CI/index.php/$1 [L]
</IfModule>

通常,你不把CI在自己的目录,并把applicationsystem的根文件夹。



Answer 3:

检查你的Apache配置,使其允许覆盖。 如果AllowOverride设置为None ,重写不会为你工作。

添加以下到您httpd.conf (不是你的.htaccess)应该解决您的问题

<Directory "/">
    AllowOverride All
</Directory>

让我知道,如果它仍然没有工作。



Answer 4:

这工作。 虽然,请确保您的mod_rewrite的启用,

  1. 找到httpd.conf下文件C:\wamp\bin\apache\apache2.4.9\conf了Apache的安装文件夹内的文件夹中。
  2. 查找以下行#LoadModule rewrite_module modules/mod_rewrite.sohttpd.conf file.You可以通过搜索关键字“mod_rewrite的”这样做很容易。
  3. 卸下#在该行的开始, #表示该行被注释。
  4. 然后, 重新启动Apache服务器
  5. 您现在可以看到mod_rewrite在加载的模块部分,而这样做phpinfo()


Answer 5:

使用下面的步骤,
1.创建在文档根[.htaccess文件myroot_folder/.htaccess ]。
2.在打开配置文件application/config/config.php并执行以下操作

$config['index_page'] = '';

删除index.php从自己的基本网址
如果它是$config['base_url']= 'http://localhost/myroot_folder/index.php';
其更改为$config['base_url']= 'http://localhost/myroot_folder/';

现在打开.htaccess文件,并添加以下代码块

DirectoryIndex index.php
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,QSA]


Answer 6:

1) make .htaccess file and put this code

  RewriteEngine on
  RewriteCond $1 !^(index\.php|resources|robots\.txt)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

2) change

 $config['index_page'] = ''; 
 remove index.php present in config.php file

3) rewrite on from your server


Answer 7:

如果你还没有工作了,但你这样做了,试试这个:

更改设置AllowOverride无 所有的AllowOverride在在/ etc / apache2的/网站可用/默认的虚拟主机文件

这里详细



文章来源: Cannot remove index.php from CodeIgniter URL