Problème htaccess avec 1and1

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

Draeli
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 2 Avr 2008

Problème htaccess avec 1and1

Message le Mer Avr 02, 2008 20:03

J'ai le .htaccess suivant :
Code: Tout sélectionner
# evite au serveur de vouloir trouver un fichier dont le nom est proche de la demande
CheckSpelling off

# On suit les liens symboliques
Options +FollowSymlinks

# Activation du mod rewrite d'Apache
RewriteEngine On

# obligatoire pour 1and1
RewriteBase /test/

AddType x-mapp-php5 .php

###############################################
# Redirection des urls de maniere plus propre #
###############################################

# Pour eviter de circuler dans certains repertoires on envoi vers un FORBIDDEN
RewriteRule ^librairies/.*$ - [NC,F,L]
RewriteRule ^modules/.*$ - [NC,F,L]
RewriteRule ^tables/.*$ - [NC,F,L]
RewriteRule ^temp/.*$ - [NC,F,L]

RewriteRule ^index\.html$ index.php [L]
RewriteRule ^telechargement-(.+)$ telechargement.php?key=$1 [L]
RewriteRule ^telechargement\.html$ index.php [L]
RewriteRule ^articles\.html$ articles.php [L]
RewriteRule ^articles/(([^/]*)/([^/]*)(/([^/]*)/([^/]*)(/([^/]*)/([^/]*))?)?)\.html$ articles.php?$2=$3&$5=$6&$8=$9 [L]
RewriteRule ^articles_commentaires/(([^/]*)/([^/]*)(/([^/]*)/([^/]*)(/([^/]*)/([^/]*))?)?)?\.html$ articles_commentaires.php?$2=$3&$5=$6&$8=$9 [L]
RewriteRule ^page/([0-9]+)\.html?$ page.php?id=$1 [L]
RewriteRule ^creation-compte\.html$ connexion.php [L]
RewriteRule ^connexion\.html$ connexion.php?action=connexion [L]
RewriteRule ^deconnexion\.html$ index.php?connection_destroy=1 [L]

####################################
# Gestion personnalise des erreurs #
####################################

# Si le fichier n'existe pas et que le repertoire n'existe pas non plus, executer les regles suivantes
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d

ErrorDocument 400 /site_base/erreur-400.html
ErrorDocument 401 /site_base/erreur-401.html
ErrorDocument 404 /site_base/erreur-404.html
ErrorDocument 405 /site_base/erreur-405.html
ErrorDocument 500 /site_base/erreur-500.html
RewriteRule ^erreur-([0-9]{3})\.html$ erreur.php?id=$1 [L]

En local tous marche bien, y compris quand je demande l'adresse :
http://127.0.0.1/test/articles/id/1.html
qui renvoi bien vers le fichier articles.html avec les arguments qui vont bien.
Dés que je place chez 1and1 et que j'essaye d'accéder à :
http://mon_site/test/articles/id/1.html
j'ai le droit à une erreur 404, j'ai testé plusieurs expressions différentes mais rien à faire ... j'ai fais le tour de la doc officiel d'apache et je trouve rien :(

Quelqu'un serait il comment remédier au soucis ?

J'ai un autre soucis sur la gestion des erreurs, j'ai lu leur Faq et j'ai modifié ma gestion des erreurs en conséquent, en local ca marche par contre chez eux ca n'a pas l'air d'être pris en compte ... :(

La aussi quelqu'un aurait il une idée du comment faire ?
Dernière édition par Draeli le Mer Avr 02, 2008 21:39, édité 1 fois.


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Mer Avr 02, 2008 21:34

essaye en remplaçant les lignes :
Code: Tout sélectionner
# Si le fichier n'existe pas et que le repertoire n'existe pas non plus, executer les regles suivantes
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d

ErrorDocument 400 /site_base/erreur-400.html
ErrorDocument 401 /site_base/erreur-401.html
ErrorDocument 404 /site_base/erreur-404.html
ErrorDocument 405 /site_base/erreur-405.html
ErrorDocument 500 /site_base/erreur-500.html
RewriteRule ^erreur-([0-9]{3})\.html$ erreur.php?id=$1 [L]

par :
Code: Tout sélectionner
ErrorDocument 400 /site_base/erreur.php?id=400
ErrorDocument 401 /site_base/erreur.php?id=401
ErrorDocument 404 /site_base/erreur.php?id=404
ErrorDocument 405 /site_base/erreur.php?id=405
ErrorDocument 500 /site_base/erreur.php?id=500

Draeli
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 2 Avr 2008

Message le Mer Avr 02, 2008 21:37

Oui c'est ce que j'avais fais et qui marchait en local mais j'étais parti sur l'autre idée après avoir lu leur Faq (qui précise qu'il ne faut que du htm ou html ...)


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Mer Avr 02, 2008 21:42

je ne sais pas ou tu as vu ça?

en plus le RewriteBase n'est pas obligatoire chez 1and1 : il n'y en a pas dans mon .htaccess par contre je mets le chemin complet pour la partie droite des RewriteRule.


fra_arf
WRInaute impliqué
WRInaute impliqué
 
Messages: 508
Inscription: 22 Nov 2005

Message le Mer Avr 02, 2008 23:44

Hum il faut pas par hazar le / ?

Code: Tout sélectionner
RewriteRule ^telechargement-(.+)$ telechargement.php?key=$1 [L]

- >
Code: Tout sélectionner
RewriteRule ^telechargement-(.+)$ /telechargement.php?key=$1 [L]


Il se trouve bien à la racine de ton hébérgement le htaccess ?

Draeli
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 2 Avr 2008

Message le Jeu Avr 03, 2008 9:28

J'ai essayé avec ou sans /, le fichier htaccess est dans le répertoire (ce qui explique le RewriteBase obligatoire d'après leur support ...).

Pour la Faq il s'agit de ce lien :
http://faq.1and1.fr/hebergements/htaccess/10.html
(d'ailleurs qui en dernière ligne de l'exemple, utilise quelque chose que je ne comprend pas (et que je ne veux pas mettre utilisant PHP5 sur leur serveur qui nécessite la AddType))

(il faut savoir que la Faq a était totalement refaite il y a peu de temps donc beaucoup plus d'infons qu'avant)

Draeli
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 2 Avr 2008

Message le Jeu Avr 03, 2008 10:12

Alors je viens de tester quelque chose qui me titillé :
Code: Tout sélectionner
RewriteRule ^articles-(([^-]*)-([^-]*)(-([^-]*)-([^-]*)(-([^-]*)-([^-]*))?)?)\.html$ articles.php?$2=$3&$5=$6&$8=$9 [L]

Dans ce cas, si je tape la même adresse en remplacant les / par des -, la redirection est faite correctement. Du coup j'en arrive à la conclusion qu'il y a une configuration sur le serveur qui interprète les / comme étant peut-être des répertoires ou un signe spécial signifiant quelque chose d'autre. Sauf que dans la doc officiel (que je trouve d'ailleurs fort mal foutu) je ne vois pas qu'est ce qui pourrait permettre ca et comment le modifier :(

Si un pro du htaccess passe par la, je lui serait gré de partager avec nous ses connaissances :)


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Jeu Avr 03, 2008 14:57

si ton fichier articles.php est accessible avec l'adresse -http://www.tonsite.fr/test/articles.php je te conseil d'écrire sous cette forme :
Code: Tout sélectionner
RewriteRule ^articles/(([^/]*)/([^/]*)(/([^/]*)/([^/]*)(/([^/]*)/([^/]*))?)?)\.html$ /test/articles.php?$2=$3&$5=$6&$8=$9 [L]

ça doit marcher pareil avec un - ou un /
je te conseil aussi de dédoubler les règles pour éviter les motifs facultatifs.

Draeli
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 2 Avr 2008

Message le Jeu Avr 03, 2008 15:53

Je pensais que c'étais plus intéressant niveau performance que d'en faire 3 (1 pour chaque pair).

J'ai test avec et sans /test/, même en mettant une url complète, et ca en a rien à faire si c'est des / :(


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Jeu Avr 03, 2008 16:52

c'est peut-être plus performant et plus compacte mais c'est vraiment pas lisible.
essaye avec une version simple :
Code: Tout sélectionner
RewriteRule ^articles/([^/]*)/([^/]*)\.html$ /test/articles.php?$1=$2 [L]

je l'ai testé chez moi et ça marche. si ca marche tu ajoutes les deux autre règles :
Code: Tout sélectionner
RewriteRule ^articles/([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$ /test/articles.php?$1=$2&$3=$4 [L]
RewriteRule ^articles/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$ /test/articles.php?$1=$2&$3=$4&$5=$6 [L]

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Jeu Avr 03, 2008 23:20

Une question qui n'a rien a voir: comment tu fais pour que ça marche en local avec cette ligne:
Code: Tout sélectionner
AddType x-mapp-php5 .php


Je suis toujours obligé de la commenter en local.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité