Comment remplacer les tirets de soulignement dans codeigniter url avec des tirets?
Je voudrais savoir la solution la plus simple pour changer les traits de soulignement de mon codeigniter url de tirets, pour des raisons seo.
Mon contrôleurs de ressembler à:
public function request_guide() {
...Load view etc...
}
Donc à parcourir pour cette page, je dois aller à:
www.domain.com/request_guide
Mais je veux être plus seo friendly et utiliser des tirets au lieu de soulignement, comme suit:
www.domain.com/request-guide
J'ai l'impression que codeigniter fonctions requièrent des caractères de soulignement (peut être mal).
Dans des projets antérieurs, j'ai simplement utilisé mod_rewrite mais je crois que ces actions peut être effectuée à l'aide de routes.
Quel est le moyen le plus facile pour moi de réécrire les url en remplaçant le souligne avec des tirets???
request-guide
n'est pas plus seo-friendly querequest_guide
.- Si vous thik à ce sujet, qui pourrait correspondre à un nom de classe, où un tableau de bord n'est pas valide; vous auriez besoin, en fait, à l'écriture de la classe (ou de méthode) nom comme "demande-guide", qui n'est pas valide syntaxe php. Aller pour un re-routage comme suggéré dans les réponses ci-dessous
- J'étais sous l'impression à partir de google qu'ils ont de la classe des tirets comme les espaces et les mots contenant des caractères de soulignement comme un mot entier.
- demande-guide est BEAUCOUP plus seo-friendly que request_guide. Les traits d'union sont extrêmement SEO friendly URLs Google et les interprète comme des séparateurs de mots.
Vous devez vous connecter pour publier un commentaire.
La config des routes trouvé dans
est votre ami ici.
Un simple
le fera pour vous.
Cela dépend vraiment de votre intention. Si vous voulez juste changer une seule page, puis devrooms solution est parfait en effet:
Mais si vous voulez que votre site web est le comportement par défaut, vous devez étendre votre Routeur principal de la classe comme ceci (source: [En utilisant des tirets au lieu de soulignement dans CodeIgniter])
Insérer ce code:
Mise à JOUR (26 Oct., 2015): Il y a une meilleure façon de le faire dans CodeIgniter 3, comme @Thomas Bois mentionnés:
Code d'Allumage 3 a ce en de construction:
$route['translate_uri_dashes'] = FALSE;
Il suffit de changer de
TRUE
et vous pouvez utiliser soit_
ou-
.La Documentation
application/controllers/my_folder/About_us.php
.Ouvrir application/config/routes.php et le changement
Qu'est-ce que vous devez faire.
Désormais, lorsque vous accédez http://www.domain.com/demande-guide, il va instancier request_guide contrôleur.
Il fonctionne avec tous les contrôleurs avec un nom contenant _ (trait de soulignement).
Avoir un regard sur Codeigniter du routage personnalisé http://codeigniter.com/user_guide/general/routing.html
Ce que vous pourriez faire est de créer un personnalisé du crochet (PST... vous avez besoin de base de CodeIgniter compétences):
pour plus d'informations sur CodeIgniter Crochets - d'Étendre le Framework de Base
J'ai nommé le fichier customhooks.php.
Puis l'ajouter à la hooks.php fichier dans application/config:
Vous devrez modifier votre application/config/config.php fichier pour activer crochets
SUPPLÉMENTAIRE:
de sorte que lorsque vous utilisez $this->uri->uri_string() il reste un trait d'union effectuer les opérations suivantes La Création De Base Du Système De Classes
Vous pouvez utiliser cette _remap() méthode pour gérer un tel comportement. La Place de cette méthode dans vos contrôleurs ou créer un contrôleur de base et de le placer dans.