如何在Yii框架中缩短网址?

时间:2016-11-03 13:32:40

标签: php .htaccess yii

我在本地Xampp服务器上安装了一个使用Yii Framework的php脚本。如何将此网址http://localhost/magicweb/home/shop/client-name-1更改为http://localhost/magicweb/client-name-1?有什么简单的方法可以使用.htaccess执行此操作,或者我需要使用Yii控制器执行此操作?我是php和yii框架的新手。

1 个答案:

答案 0 :(得分:1)

  1. 使用slug
  2. 上面的扩展名在您的业务供应商表中添加了一个“slug”列(我认为是商店),并在创建或更新记录时更新该列。您将使用“slug”列作为URL中的唯一ID来显示供应商的信息。例如:/ mc-donalds,/ starbucks或/ burger-king。

    1. 在现有规则之前,在main.php的UrlManager配置中添加网址规则,如下所示:
    2.  '<slug:[-a-zA-Z]+>' => 'vendor/view',
      

      上述规则将指向“供应商”控制器和“查看”操作,在操作中,您将指定一个从url获取的slug参数,然后您将使用此slug查询“shop”记录并显示其信息查看。

      你需要一个slugify功能:

      public static function getSlug($string) 
      {
      
          //remove any '-' from the string they will be used as concatonater
          $str = str_replace('-', ' ', $string);
          $str = self::removeAccent( $string );
      
          // remove any duplicate white, and ensure all characters are alphanumeric
          $str = preg_replace( array('/\s+/', '/[^A-Za-z0-9\-]/'), array('-', ''), $str);
      
          // lowercase and trim
          $str = trim(strtolower($str));
          return $str;
      }
      

      您将通过localhost / magicweb / mc-donalds,localhost / magicweb / starbucks或localhost / magicweb / burger-king进入供应商页面