Routage de sous-domaines
Je suis en train de configurer un script de blogs sur un site web en cours d'exécution sur le framework CodeIgniter. Je veux le faire sans faire de grands changements de code pour mon site web code. J'ai pensé que la création d'un sous domaine pointant vers un autre Contrôleur serait la méthode la plus sûre de le faire.
Les étapes que j'ai pris à l'installation de mon nouveau Blog
contrôleur impliqués:
- La création d'Un enregistrement pointant vers mon adresse ip du serveur.
- L'ajout de nouvelles règles de CodeIgniter est
routes.php
fichier.
Voici ce que je suis venu avec:
switch ($_SERVER['HTTP_HOST']) {
case 'blog.notedu.mp':
$route['default_controller'] = "blog";
$route['latest'] = "blog/latest";
break;
default:
$route['default_controller'] = "main";
break;
}
Cela devrait blog.notedu.mp
et blog.notedu.mp/latest
à mon blog
contrôleur.
Maintenant, ici, est le problème...
Accès blog.notedu.mp
ou blog.notedu.mp/index.php/blog/latest
fonctionne très bien, cependant accéder à blog.notedu.mp/latest
me prend pour une page 404 pour une raison...
Mon .fichier htaccess ressemble à ceci (la valeur par défaut pour la suppression index.php à partir de l'url):
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Et mon Blog
contrôleur contient le code suivant:
class Blog extends CI_Controller {
public function _remap($method){
echo "_remap function called.\n";
echo "The method called was: ".$method;
}
public function index()
{
$this->load->helper('url');
$this->load->helper('../../global/helpers/base');
$this->load->view('blog');
}
public function latest(){
echo "latest working";
}
}
Ce qui me manque sur ou de faire du mal ici? J'ai été à la recherche d'une solution à ce problème pendant des jours 🙁
source d'informationauteur Joel Murphy
Vous devez vous connecter pour publier un commentaire.
Après 4 jours d'essais et d'erreurs, j'ai enfin résolu ce problème!
S'avère qu'il était un .htaccess problème et le suivant des règles fixes:
Merci à tous ceux qui lisent ou ont répondu à cette question.
Ne blog.domaine.co/blog/les plus récentes montrent également une erreur 404?
peut-être vous pourriez aussi prendre un coup d'oeil à la _remap() fonction de votre contrôleur par défaut.
http://ellislab.com/codeigniter/user-guide/general/controllers.html#default
Fondamentalement, CodeIgniter utilise le deuxième segment de l'URI pour déterminer la fonction du contrôleur est appelé. Vous pour remplacer ce comportement par le biais de l'utilisation de la _remap() fonction.
Directement à partir du guide de l'utilisateur,
Espère que cette aide.
ont un "AllowOverride All" dans le fichier de configuration du sous-domaine dans apache?
sans elle "de blog.notedu.mp/index.php/blog/dernière" fonctionne parfaitement, mais "blog.notedu.mp/dernière" pas de
signifie que l'URL
http://blog.example.com/latest
vais chercher uneindex()
méthode dans unindex
contrôleur.Vous voulez
Codeigniter guide de l'utilisateur a une explication claire sur les itinéraires ici