diff --git a/htaccess-propres.txt b/htaccess-propres.txt
index 6478b40bdc41230ade8340840260dbd2cd15286e..cd99904ed4e43db877b0f69bc1740b906414bfa1 100644
--- a/htaccess-propres.txt
+++ b/htaccess-propres.txt
@@ -1,6 +1,6 @@
 ###########################################################
 # Fichier .htaccess pour les URLs propres ; a installer   #
-# si vous reglez $type_urls='propres'                     #
+# si vous reglez $type_urls='propres' ou 'propres2'       #
 # dans ecrire/mes_options.php3                            #
 # (fichier associe : inc-urls-propres.php3)               #
 #                                                         #
@@ -9,8 +9,27 @@
 
 RewriteEngine On
 
-### si votre site est en sous-domaine, preciser ci-dessous
-# RewriteBase /sous/domaine/
+### Si votre site est dans un sous-repertoire, preciser ci-dessous
+# RewriteBase /sous/repertoire/
+
+
+
+
+################ DEBUT HTACCESS SPIP ######################
+
+### Supprimez le '#' de la ligne ci-dessous si votre hebergement
+### lit les .php3 avec php3 au lieu de php4 ou php5 (sans garantie!)
+# AddType x-mapp-php4 .php3
+
+
+###
+# Si le fichier ou repertoire existe, ignorer toutes les regles suivantes
+RewriteCond %{REQUEST_FILENAME} -f
+RewriteRule "." - [skip=100]
+RewriteCond %{REQUEST_FILENAME} -d
+RewriteRule "." - [skip=100]
+#
+###
 
 ###
 # Compatibilite avec les URLS "html" (pour transition sympa)
@@ -22,33 +41,33 @@ RewriteRule ^auteur([0-9]+)\.html$		auteur.php3?id_auteur=$1 [QSA,L]
 # Fin compatibilite
 ###
 
+###
+# URLs "propres" et "propres2"
+
 # Rediriger les mots et breves sans le "+" final
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(\+[^/\.\+]+)(\.html)?$ /$1+$2 [QSA,R]
 
 # Les mots-cles
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^\+-[^/\.]+-\+(\.html)?$ mot.php3 [QSA,E=url_propre:$0,L]
 
 # Les breves
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^\+[^/\.]+\+(\.html)?$ breve.php3 [QSA,E=url_propre:$0,L]
 
 # Les rubriques
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^-[^/\.]+-(\.html)?$ rubrique.php3 [QSA,E=url_propre:$0,L]
 
 # les auteurs
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^_[^/\.]+(\.html)?$ auteur.php3 [QSA,E=url_propre:$0,L]
 
 # Les articles (en dernier car expression plus "large")
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^[^/\.]+(\.html)?$ article.php3 [QSA,E=url_propre:$0,L]
 
+# Fin URLs "propres" et "propres2"
+###
+
+# rediriger les .php3 errones vers .php
+RewriteCond %{REQUEST_FILENAME} (.*\.php)3$
+RewriteCond $1 -f
+RewriteRule . $1 [QSA,L]
+
+################ FIN HTACCESS SPIP ########################
diff --git a/htaccess.txt b/htaccess.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d207712cd41d56edbd1eb002e3ff75dc73306dba
--- /dev/null
+++ b/htaccess.txt
@@ -0,0 +1,101 @@
+##############################################################
+# Fichier .htaccess                                SPIP v1.8 #
+#                                                            #
+# Permet de controler les URLs et la version de php utilisee #
+# Compatible avec les URLs 'html', 'propres' et 'propres2'   #
+# Permet aussi d'effectuer la transition de .PHP 3 vers .PHP #
+#                                                            #
+# Pour utiliser ce fichier renommez-le '.htaccess' dans le   #
+# repertoire racine du site, en veillant a ne pas ecraser un #
+# .htaccess personnalise qui s'y trouverait deja             #
+#                                                            #
+# Attention certains hebergeurs desactivent tout ou partie   #
+# des fonctions du fichier .htaccess ; celui-ci est donc     #
+# indicatif - en cas de difficulte voir sur les forums SPIP  #
+##############################################################
+
+RewriteEngine On
+
+
+################ CONFIGURATION ######################
+
+### Configuration sous-repertoire
+# Si votre site est dans un sous-repertoire, preciser ci-dessous
+# le nom du sous-repertoire, et supprimer le '#'
+
+#RewriteBase /sous/repertoire/
+
+
+### Version PHP 3
+# Si vous utilisez une distribution 'PHP 3' de SPIP, et si votre
+# hebergement execute encore les .php[3] avec un moteur PHP 3
+# au lieu de PHP 4, vous pouvez decommenter la ligne ci-dessous
+# pour faire fonctionner les fichiers sous php4 (sans garantie)
+
+#AddType x-mapp-php4 .php3
+
+
+# SPIP version 'php' - si vous avez d'anciennes adresses en '.php[3]',
+# supprimez le '#' sur les lignes qui suivent pour rediriger les acces
+# errones vers le .php correspondant
+
+#RewriteCond %{REQUEST_FILENAME} -f
+#RewriteRule ^(.+)\.php[3]$ $1.php [QSA,L]
+
+# Fin version
+###
+
+
+################ REGLAGES PERSONNALISES ######################
+# Inscrivez ci-dessous vos reglages supplementaires
+
+
+
+
+################ GESTIONS DES URLS SPIP #######################
+
+###
+# Si le fichier ou repertoire demande existe
+# ignorer toutes les regles qui suivent
+RewriteCond %{REQUEST_FILENAME} -f
+RewriteRule "." - [skip=100]
+RewriteCond %{REQUEST_FILENAME} -d
+RewriteRule "." - [skip=100]
+#
+###
+
+
+###
+# Compatibilite avec les URLS "html" (pour transition sympa)
+# voir fichier inc-urls-html.php3
+RewriteRule ^rubrique([0-9]+)\.html$	rubrique.php3?id_rubrique=$1 [QSA,L]
+RewriteRule ^article([0-9]+)\.html$		article.php3?id_article=$1 [QSA,L]
+RewriteRule ^breve([0-9]+)\.html$		breve.php3?id_breve=$1 [QSA,L]
+RewriteRule ^mot([0-9]+)\.html$			mot.php3?id_mot=$1 [QSA,L]
+RewriteRule ^auteur([0-9]+)\.html$		auteur.php3?id_auteur=$1 [QSA,L]
+# Fin compatibilite
+###
+
+###
+# URLs "propres" et "propres2"
+# pensez a regler $type_urls='propres' ou 'propres2'
+# dans ecrire/mes_options.php3
+# (fichier associe : inc-urls-propres.php3)
+
+# Les mots-cles
+RewriteRule ^\+-[^/\.]+(-\+)?(\.html)?$ mot.php3 [QSA,E=url_propre:$0,L]
+
+# Les breves
+RewriteRule ^\+[^/\.]+\+?(\.html)?$ breve.php3 [QSA,E=url_propre:$0,L]
+
+# Les rubriques
+RewriteRule ^-[^/\.]+-?(\.html)?$ rubrique.php3 [QSA,E=url_propre:$0,L]
+
+# les auteurs
+RewriteRule ^_[^/\.]+_?(\.html)?$ auteur.php3 [QSA,E=url_propre:$0,L]
+
+# Les articles (en dernier car expression plus "large")
+RewriteRule ^[^/\.]+(\.html)?$ article.php3 [QSA,E=url_propre:$0,L]
+
+# Fin URLs "propres" et "propres2"
+###
diff --git a/inc-urls-html.php3 b/inc-urls-html.php3
index 3dad37274609c396874750f6480211d742706716..3b1e20d216e867605f1dcd35a7b304539a1155cf 100644
--- a/inc-urls-html.php3
+++ b/inc-urls-html.php3
@@ -14,19 +14,22 @@
 
 - Comment utiliser ce jeu d'URLs ?
 
-Il faut recopier le fichier htaccess-propres.txt sous le nom .htaccess
-dans le repertoire de base du site SPIP (attention a ne pas ecraser
-d'autres reglages que vous pourriez avoir mis dans ce fichier) ; si votre site
-est en "sous-repertoire", vous devrez editer la ligne "RewriteBase" ce fichier.
+Recopiez le fichier "htaccess.txt" du repertoire de base du site SPIP sous
+le sous le nom ".htaccess" (attention a ne pas ecraser d'autres reglages
+que vous pourriez avoir mis dans ce fichier) ; si votre site est en
+"sous-repertoire", vous devrez aussi editer la ligne "RewriteBase" ce fichier.
+Les URLs definies seront alors redirigees vers les fichiers de SPIP.
 
-definissez ensuite dans ecrire/mes_options.php3 :
+Definissez ensuite dans ecrire/mes_options.php3 :
 	type_urls = 'html';
 
-Note : le fichier htaccess-propres.txt est compatible avec les URLS 'html' ;
-toutefois si htaccess-propres.txt se revele trop "puissant", car trop generique,
-et conduit a des problemes (en lien par exemple avec d'autres applications
-installees dans votre repertoire, a cote de SPIP), vous pouvez utiliser a la
-place le fichier htaccess-html.txt, qui est suffisant pour ce type d'urls.
+SPIP calculera alors ses liens sous la forme "article123.html".
+
+
+Note : si le fichier htaccess.txt se revele trop "puissant", car trop
+generique, et conduit a des problemes (en lien par exemple avec d'autres
+applications installees dans votre repertoire, a cote de SPIP), vous
+pouvez l'editer pour ne conserver que la partie concernant les URLS 'html'.
 
 */
 
diff --git a/inc-urls-propres.php3 b/inc-urls-propres.php3
index 82314784730b647f3af14c49661f40f55d33a664..29a8038b325214696ee1bc4ce9e7e227036599c3 100644
--- a/inc-urls-propres.php3
+++ b/inc-urls-propres.php3
@@ -19,16 +19,19 @@ define("_INC_URLS2", "1");
 
 - Comment utiliser ce jeu d'URLs ?
 
-Il faut recopier le fichier htaccess-propres.txt sous le nom .htaccess
-dans le repertoire de base du site SPIP (attention a ne pas ecraser
-d'autres reglages que vous pourriez avoir mis dans ce fichier) ; si votre site
-est en "sous-repertoire", vous devrez editer la ligne "RewriteBase" ce fichier.
+Recopiez le fichier "htaccess.txt" du repertoire de base du site SPIP sous
+le sous le nom ".htaccess" (attention a ne pas ecraser d'autres reglages
+que vous pourriez avoir mis dans ce fichier) ; si votre site est en
+"sous-repertoire", vous devrez aussi editer la ligne "RewriteBase" ce fichier.
+Les URLs definies seront alors redirigees vers les fichiers de SPIP.
 
-definissez ensuite dans ecrire/mes_options.php3 :
+Definissez ensuite dans ecrire/mes_options.php3 :
 	type_urls = 'propres';
-ou
+SPIP calculera alors ses liens sous la forme "Mon-titre-d-article".
+
+Variante :
 	type_urls = 'propres2';
-pour ajouter '.html' aux adresses generees.
+ajoutera '.html' aux adresses generees : "Mon-titre-d-article.html"
 
 */
 
@@ -157,7 +160,7 @@ function generer_url_mot($id_mot) {
 function generer_url_auteur($id_auteur) {
 	$url = _generer_url_propre('auteur', $id_auteur);
 	if ($url)
-		return '_'.$url._terminaison_urls_propres;
+		return '_'.$url.'_'._terminaison_urls_propres;
 	else
 		return "auteur.php3?id_auteur=$id_auteur";
 }
@@ -202,19 +205,19 @@ preg_match(',(^|/)((article|breve|rubrique|mot|auteur)(\.php3?|[0-9]+\.html)([?&
 	$url_propre = preg_replace(',\.html$,i', '', $url_propre);
 
 	// Detecter les differents types d'objets demandes
-	if (preg_match(',^\+-(.*?)-\+$,', $url_propre, $regs)) {
+	if (preg_match(',^\+-(.*?)-?\+?$,', $url_propre, $regs)) {
 		$type = 'mot';
 		$url_propre = $regs[1];
 	}
-	else if (preg_match(',^-(.*)-$,', $url_propre, $regs)) {
+	else if (preg_match(',^-(.*)-?$,', $url_propre, $regs)) {
 		$type = 'rubrique';
 		$url_propre = $regs[1];
 	}
-	else if (preg_match(',^\+(.*)\+$,', $url_propre, $regs)) {
+	else if (preg_match(',^\+(.*)\+?$,', $url_propre, $regs)) {
 		$type = 'breve';
 		$url_propre = $regs[1];
 	}
-	else if (preg_match(',^_(.*)$,', $url_propre, $regs)) {
+	else if (preg_match(',^_(.*)_?$,', $url_propre, $regs)) {
 		$type = 'auteur';
 		$url_propre = $regs[1];
 	}
@@ -229,8 +232,7 @@ preg_match(',(^|/)((article|breve|rubrique|mot|auteur)(\.php3?|[0-9]+\.html)([?&
 	$query = "SELECT $col_id FROM $table
 		WHERE url_propre='".addslashes($url_propre)."'";
 	$result = spip_query($query);
-	if (spip_num_rows($result) == 1) {
-		$row = spip_fetch_array($result);
+	if ($row = spip_fetch_array($result)) {
 		$contexte[$col_id] = $row[$col_id];
 	}