CodeIgniter:用方法参数重写URL作为子域?

时间:2016-06-03 09:47:33

标签: php .htaccess codeigniter url-rewriting

我有一个CI项目,我想在下面更改网址:

www.example.com/index.php/Controller/method/param1param1.example.com/index.php/Controller/method

这可能只使用CI吗?喜欢路线。或者我们需要.htaccess? 如果可能,是否存在风险或是不良做法? 它也会影响SEO吗?

编辑:此重写仅适用于Controller控制器。

编辑:我认为意思错了。当用户输入类似的URL时 param1.example.com/Controller/method必须触发method中的Controller并传递param1作为参数。

1 个答案:

答案 0 :(得分:1)

  1. 您需要创建重定向控制器(controllers / Redirect.php),这将重定向浏览器像这样:
  2. <?php
      defined('BASEPATH') OR exit('No direct script access allowed');
    
      class Redirect extends CI_Controller {
    
          public function index($method,$domain) {
              $redirect_url =  'http://www.' . $domain . '.example.com/index.php/Controller/' . $method;
              redirect($redirect_url,'refresh');
          }
    
      }
    ?>
    
    1. 在application / config / route.php
    2. 中添加此行
        

      $ route [&#39; Controller /(:any)/(:any)&#39;] =&#39; redirect / index / $ 1 / $ 2&#39;;

      你完成了。享受:)