CodeIgniter 从 url 中删除索引.php

2022-08-30 06:36:27

我当前的网址如下所示。
我想从这些网址中剥离。[mysite]index.php/[rest of the slug]index.php

mod_rewrite在我的 apache2 服务器上启用。在config$config['index_page'] = '';

我的代码签名器根文件包含,.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

但它仍然不起作用。我哪里出错了?


答案 1

请尝试以下操作

打开配置.php并执行以下操作替换

$config['index_page'] = "index.php"

$config['index_page'] = ""

在某些情况下,的默认设置无法正常工作。只需更换uri_protocol

$config['uri_protocol'] ="AUTO"

$config['uri_protocol'] = "REQUEST_URI"

.htaccess

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

注意:.htaccess 代码因托管服务器而异。在某些托管服务器(例如:Godaddy)需要使用额外的?在上面代码的最后一行。在适用的情况下,以下行将替换为最后一行:

// Replace last .htaccess line with this line
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

答案 2

步骤:-1打开文件夹“application/config”,然后打开文件“config.php”。在config.php文件中查找并替换以下代码。

//find the below code   
$config['index_page'] = "index.php" 
//replace with the below code
$config['index_page'] = ""

步骤:-2转到 CodeIgniter 文件夹并创建 .htaccess

Path:
Your_website_folder/
application/
assets/
system/
.htaccess <——— this file
index.php

步骤:-3在 .htaccess 文件中编写以下代码

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

步骤:-4在某些情况下,uri_protocol默认设置无法正常工作。要解决此问题,只需打开文件“application/config/config.php”,然后查找并替换下面的代码

//Not needed for CodeIgniter 3 its already there.
//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI" 

这就是全部,但在wamp服务器中它不起作用,因为默认情况下禁用rewrite_module,因此我们需要启用它。为此,请执行以下操作

  1. 左键单击 WAMP 图标
  2. 阿帕奇
  3. Apache Modules
  4. 左键点击rewrite_module

原始文档

示例链接


推荐