将apache的.htaccess文件转换为Nginx .config文件

时间:2018-02-14 15:08:51

标签: php codeigniter-3

我在本地主机上的codeigniter中开发了这个系统我能够加载它而无需将控制器名称写为 localhost / ecommerce / 但是一旦我将其上传到在线Nginx服务器,我必须加载它作为 tushibe.com/shopController 而不是 tushibe.com / 我能做错什么? Herer是我的.htaccess代码

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

这是我的路线代码

     <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
      $route['default_controller'] = "shopController";
      $route['404_override'] = '';
      $route['translate_uri_dashes'] = FALSE;;
     /* End of file routes.php */
  /* Location: ./application/config/routes.php */

我也更改了配置文件 取代

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

    $config['index_page'] = "";

经过一番深入研究后,我意识到nginx seamingly不会理解.htaccess文件,因此我需要将它们转换为Nginx .config文件。因为我对nginx完全不熟悉,所以我不知道如何做到这一点我想问一下

  1. 该文件的名称和扩展名是什么?
  2. 它将放在我的文件夹结构中?

1 个答案:

答案 0 :(得分:1)

您应该在config / routes.php中添加以下规则

// Profile Route
$route['(:any)'] = 'shopController/$1';

这会重新路由您的请求,并通过tushibe.com/shopController发送您的请求。

希望这会对你有所帮助。

参考这个问题:codeigniter default controller url routing