Kent Posté 14 Février 2007 Posté 14 Février 2007 Bonjour, je fais un site pour une compagnie de théâtre. Le fonctionnement en local etait bon du .htaccess Voici tout le contenu du .htaccess en local, ces lignes fonctionnent parfaitement. Options +FollowSymlinksRewriteEngine onRewriteRule ^video-([a-z\-]*)-([0-9]+)\.html$ /jazz2/showvideo.php?idv=$2 [NC]RewriteRule ^spectacle-([a-z\-]*)-([0-9]+)\.html$ /jazz2/voirspectacle.php?ids=$2 [NC]RewriteRule ^news-([a-z\-0-9]*)-([0-9]+)\.html$ /jazz2/lirenews.php?&idn=$2 [NC] Le site est présent dans un sous dossier jazz2 par rapport à la racine d'apache en local Sur le serveur distant (1and1) . Le contenu du site se trouve à la racine j'ai donc remplacer par ceci : Options +FollowSymlinksRewriteEngine onRewriteRule ^video-([a-z\-]*)-([0-9]+)\.html$ /showvideo.php?idv=$2 [NC]RewriteRule ^spectacle-([a-z\-]*)-([0-9]+)\.html$ /voirspectacle.php?ids=$2 [NC]RewriteRule ^news-([a-z\-0-9]*)-([0-9]+)\.html$ /lirenews.php?&idn=$2 [NC] Résultat , une belle erreur 500, quelqu'un a une idée ? (j'ai essayé aussi en enlevant les / devant les pages php mais rien n'y fait. Merci de votre aide
Kent Posté 14 Février 2007 Auteur Posté 14 Février 2007 Salut Dan, merci pour ta réponse J'ai enlever le Options +FollowSymlinks, mais ça ne donne rien, j'ai aussi essayer sans le Options +FollowSymlinks et sans/avec "/" devant les noms des fichiers. Ne dois-je pas mettre le flag [L] Quelque part dans mes régles non ?
Kent Posté 14 Février 2007 Auteur Posté 14 Février 2007 J'ai trouvé le probléme ! il venait de cette ligne : RewriteRule ^news-([a-z\-0-9]*)-([0-9]+)\.html$ /jazz2/lirenews.php?&idn=$2 [NC] apparement cette régle est incorrecte, pourtant elle ne me genere pas d'erreur en local... Je voudrais autoriser tous les caractéres chiffre lettre autant majuscule que minuscule dans la premiere parenthése..
captain_torche Posté 14 Février 2007 Posté 14 Février 2007 Essaye avec RewriteRule ^news-([a-zA-Z0-9]*)-([0-9]+)\.html$ /jazz2/lirenews.php?&idn=$2 [NC]
Kent Posté 14 Février 2007 Auteur Posté 14 Février 2007 mhmm ça ne fonctionne pas En fait, si mon url comence par un chiffre c'est à dire news-2007 , ça ne fonctionne pas J'ai une fonction qui "néttoie" l'url, elle permet de transformer les " ' " en " - " et tout les caractéres spéciaux par leur équivalent accents " é " par " e " par exemple , peut être que le soucis viens de cette fonction et non pas de la réecriture ? function cleanurl($texte){$sep_mots = '-'; // Définition des caractères accentués $car_speciaux = array( 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'È', 'É', 'Ê', 'Ë', 'è', 'é', 'ê', 'ë', 'Ì', 'Í', 'Î', 'Ï', 'ì', 'í', 'î', 'ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'Ù', 'Ú', 'Û', 'Ü', 'ù', 'ú', 'û', 'ü', 'ß', 'Ç', 'ç', 'Ð', 'ð', 'Ñ', 'ñ', 'Þ', 'þ', 'Ý' ); // ... et de leurs "équivalents" non-accentués $car_normaux = array( 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'B', 'C', 'c', 'D', 'd', 'N', 'n', 'P', 'p', 'Y' ); // On commence par supprimer les accents $texte = str_replace($car_speciaux, $car_normaux, $texte); // On remplace les caractères non-alphanumériques par le séparateur $sep_mots $texte = preg_replace( "/[^A-Za-z0-9]+/", $sep_mots, $texte ); // On supprime le séparateur s'il se trouve en début ou fin de chaîne $texte = trim( $texte, $sep_mots ); // On convertit le tout en minuscules $texte = strtolower( $texte ); // On retourne le résultat return ( $texte ); } lorsque je définie mon lien je l'appel ainsi <a href='news-".cleanurl($lanews['titre'])."-".$lanews['idn'].".html'>".$lanews['titre']."</a>
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant