1

我试图在 Codeigniter HMVC 中删除 index.php。但是我无法使用以下代码完成。

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

我将 .htaccess 文件放在根目录中,并从配置文件中删除了 index.php。我仍然面临同样的问题。

4

4 回答 4

2

在你的 config.php 文件中放

$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";

然后在 .htaccess 文件中放

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

现在,检查您的 url 删除 index.php。它会起作用的。

于 2017-09-13T08:03:55.250 回答
1

请按照以下步骤操作:

  1. goto application/config/config.php : 替换$config['index_page'] = 'index.php';to$config['index_page'] = '';$config['uri_protocol'] = 'REQUEST_URI';to$config['uri_protocol'] = 'AUTO';


  2. sudo a2enmod rewrite 到那时 启用重写模式service apache2 restart

  3. 如果您愿意,可以使用以下 .htaccess 文件。

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>

于 2017-09-13T08:48:09.930 回答
0

只需创建一个新文件 .htaccess。

并将下面的代码传递到 .htaccess 文件中。

然后按照路径application->config->config.php进入项目文件夹

进入 config.php 文件

$config['index_page]='index.php'; 替换为 $config['index_page'] = '';


重写引擎开启

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

重写规则 ^(.*)$ /example/index.php/$1 [L]

// 上面一行示例是项目名称,你必须将示例替换为你的项目名称

于 2019-11-14T06:53:49.533 回答
0
RewriteBase /g-pos  /// Your htdocs
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
于 2020-09-14T10:12:17.320 回答