2017-10-12 6 views
-1

J'utilise Codeigniter pour mon site et je veux que mon URL unique produit comme thiomettez une partie de l'URL

http://sitename.com/category-slug/product-slug

donc j'enregistrer un itinéraire dans route.php comme celui-ci $route['([a-zA-Z0-9-]+)'/'([a-zA-Z0-9-]+)'] = 'products/show';

mais, cette route me causant problème ce chemin est également utilisé par chaque route qui est comme ceci par exemple http://sitename.com/admin/dashboard que je ne veux pas alors j'ajoute un identifiant dans mon itinéraire comme ceci http://sitename.com/myproducts/category-slug/product-slug maintenant ma seule page de produit utilise cette route et n'est pas en conflit avec toute autre route. Maintenant, la question est de savoir comment omettent myproducts partie de

http://sitename.com/myproducts/category-slug/product-slug à http://sitename.com/category-slug/product-slug

Je sais qu'il est possible avec .htaccess mais je ne sais pas comment?

+0

Vous voulez changer le nom de domaine? – shashi

+0

C'était une faute de frappe. J'ai édité la question, fondamentalement je veux enlever la partie de 'myproducts' de l'URL juste. –

Répondre

0

si vous a un url's comme

http://sitename.com/admin/dashboard 
http://sitename.com/myproducts/category-slug/product-slug 

vous pouvez le faire dans votre fichier d'itinéraire

$route['admin/:any']   = 'admin/int_rout/$1'; 
$route['myproducts/:any/:any'] = 'products/show/$1/$2'; 

mais si vous voulez a la même fonction d'itinéraire pour tous et prendre toutes les décisions avec url's like

http://sitename.com/admin/dashboard 
http://sitename.com/category-slug/product-slug 

$route['(.+)'] = function ($param) { 
         $pos  = strpos($param, '/'); 

         if(! $param){ 
          $return = 'simple/url'; 
         } 
         else{ 
          $return = explode('/', $param); 

          switch($return[0]){ 
           case 'admin': 
            $return = 'admin/int_route'; 
            break; 
           default: 
            $return = 'products/show/$return [0]/$return [1]'; 
            break; 
          } 
         } 

         return $return; 
        }