codeigniter删除index.php表单url

时间:2016-09-22 14:05:45

标签: php .htaccess codeigniter

我想删除" index.php"来自Codeigniter的网址。我知道如何从基本网址中删除index.php,如 example.com/controller

但我不知道如何删除" index.php"在子文件夹中,如 example.com/folder/index.php/controller

因为我必须在codeigniter中使用不同的项目。所以我已经在子文件夹中上传了第二个项目。

的.htaccess

#original
#RewriteEngine on
#RewriteCond $1 !^(index\.php|images|robots\.txt)
#RewriteRule ^(.*)$ index.php/$1 [L]

#modify
RewriteEngine on

RewriteCond $1 !^(index\.php|resources|robots\.txt)

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

基本网址的上述程序。所以我将在这个程序中更改它在子文件夹上工作。

5 个答案:

答案 0 :(得分:0)

在config.php $config['index_page'] = '';中更新此变量。删除index.php

答案 1 :(得分:0)

 `Step:-1  Open the file config.php located in application/config path.  Find and Replace the below code in config.php  file.

//找到以下代码

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

//删除index.php

 $config['index_page'] = ""

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

路径:

  Your_website_folder/
  application/
  assets/
  system/
  user_guide/
  .htaccess <--------- this file
  index.php
  license.txt

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

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

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

//找到以下代码

  $config['uri_protocol'] = "AUTO"

//将其替换为

 $config['uri_protocol'] = "REQUEST_URI" `

答案 2 :(得分:0)

采取与example.com文件夹完全相同的步骤,从example.com/folder文件夹的基本网址中删除index.php。也就是说,编辑/创建htaccess,从配置文件中删除index.php等。

答案 3 :(得分:0)

将此代码写入.htaccess文件

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /folder/index.php [L]
</IfModule>

# END WordPress

示例:example.com/folder/index.php/contorller

以上代码后无需编写index.php

它正在运作..

答案 4 :(得分:0)

快速解决方案

RewriteEngine On
RewriteCond %{HTTP} off
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

如果遇到问题

您可能必须检查modrewrite中是否安装并启用了apache

启用modrewrite

sudo a2enmod rewrite

还要确保

sudo vi /etc/apache2/apache2.conf

并允许符号链接

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

重新启动apache2,您的.htaccess应该可以正常工作。

enter image description here

在以下位置阅读最后一步:https://www.inteligentcomp.com/2017/07/how-to-setup-and-configure-lamp-on-ubuntu-server.html