Le segment d'URL de sous-domaine peut-il être utilisé comme classe dans CodeDigniter?
-
14-11-2019 - |
Question
Je dois utiliser un sous-domaine comme classe. c'est-à-dire au lieu de:
www.example.com/class/function/id par exemple www.example.com/town-name/history/1
J'ai besoin
classe.example.com/function/id, par exemple urbain-name.example.com/history/1
J'ai sauvé le sous-domaine de Nginx, maintenant j'ai googlé et lisez
http://codeigniter.com/user_guide/libries/uri.html <
http://codeigniter.com/user_guide/general/urls.html
http://codeigniter.com/user_guide/helpers/url_helper.html
mais rien de pertinent. J'en ai besoin pour être de sorte que si une autre ville est ajoutée à la DB, elle résoudra cette nouvelle ville et ses détails.
Je vois de nombreuses discussions sur les réécrites, les redirections, etc., mais j'ai spécifiquement besoin d'utiliser le nom de la ville de sous-domaine comme variable de classe. Si possible, dans une idée de l'idée, je pourrais utiliser les deux ensemble, mais je doute que cela soit possible?
Je l'ai eu bien dans un vieil php plain pendant quelques années maintenant; Maintenant, je veux passer à CodeIdigniter sans ruiner mon ancienne structure si possible (plus il y a une bonne raison pour cela).
merci à vous.
La solution
Vous pouvez le faire.Je le fais pour l'un de mes projets.
dans le constructeur de votre contrôleur, juste exploser l'URL actuelle et obtenez-enle sous-domaine et transmettez-le dans votre méthode en tant que variable
public class Controller extends CI_Controller {
$subdomain = null;
public __construct()
{
// explode url here and set $this->subdomain = the actual subdomain
}
public function index()
{
if($this->subdomain == null) {
show_404();
} else {
// do what you wish
}
}
}