2010-11-22 6 views
1

Existe-t-il un moyen d'utiliser une regex pour rediriger (301) des URL dans le fichier .htacces de manière à ce que domain.com/My_Name.html soit redirigé vers domain.com/my-name? besoin de remplacer tous les _ avec -, les minuscules caractères et soustraire le « .html »Redirection de .htaccess avec manipulation de caractères


EDIT: Je besoin de remplacer tous _ caractères, peu importe combien d'entre eux sont dans l'URL.

Répondre

1
RewriteEngine on 
RewriteRule ^(\w+)_(\w+)\.html$ ${tolower:$1}-${tolower:$2} 

Pas encore testé, mais je suis sûr que cela fonctionnera.

+0

Merci! Le seul problème est que je ne connais pas le nombre de caractères "_" ... J'ai besoin de les remplacer tous, peu importe leur nombre. Désolé de ne pas avoir mentionné auparavant – Joel

+0

@Joel Vous devriez pouvoir combiner les règles: Essayez 'RewriteRule _ \ -' suivi de' RewriteRule^([\ w -] +) .html $ $ {tolower: $ 1} '. J'ai échappé le '-' car il a un [sens spécial] (http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule) comme caractère de remplacement. – jensgram

+0

Il semble que Apache ne reconnaisse pas "tolower", car il me redirige juste avec "-" et ignore les cordes, mais je vais le contourner :) merci! – Joel