[spip-dev] urls arborescentes et rubriques avec terminaisons '/index.html'

Hello tous,

Je rencontre un problème pour mettre en place des urls avec une terminaison de rubrique en '/index.html'.

Le problème, je ne sais pas d'où il vient... toujours est-il que sur la page qui donne le 404 (donc, toutes les rubriques), le script passe dans ce code (http://trac.rezo.net/trac/spip/browser/spip/ecrire/urls/arbo.php#L477) :

// Compatibilite avec .htm/.html et autres terminaisons
$t = array_diff(array_unique(array_merge(array('.html','.htm','/'),url_arbo_terminaison(''))),array(''));
if (count($t))
  $url_propre = preg_replace('{('
    .implode('|',array_map('preg_quote',$t)).')$}i', '', $url_propre);

Le tableau $t généré vaut :
array (
   0 => '.html',
   1 => '.htm',
   2 => '/',
   3 => '/index.html',
)

Le preg_replace commence donc le remplacement des '.html', et ne trouve donc pas de '/index.html' puisqu'il ne reste que 'index' à la fin de l'url propre...

Cependant, en regardant, même l'url qui arrive ($url_propre) ne comporte pas le '/index.html', mais juste 'index.html', donc il ne risque pas non plus d'être enlevé.

Je n'arrive pas à tout comprendre le fonctionnement. Est-ce que quelqu'un veut bien m'aiguiller ?

Matthieu Marcillaud a écrit :

Cependant, en regardant, même l'url qui arrive ($url_propre) ne comporte pas le '/index.html', mais juste 'index.html', donc il ne risque pas non plus d'être enlevé.

Et ce 'index.html' est attribué par une variable $_SERVER['REDIRECT_url_propre'] et je n'arrive pas à trouver où est-ce qu'elle se créé cette variable là.... non de non ! Je ne comprends pas !

* Matthieu Marcillaud tapuscrivait, le 27/02/2009 14:19:

Matthieu Marcillaud a écrit :

Cependant, en regardant, même l'url qui arrive ($url_propre) ne comporte pas le '/index.html', mais juste 'index.html', donc il ne risque pas non plus d'être enlevé.

Et ce 'index.html' est attribué par une variable $_SERVER['REDIRECT_url_propre'] et je n'arrive pas à trouver où est-ce qu'elle se créé cette variable là.... non de non ! Je ne comprends pas !

Dans le .htaccess ?
RewriteRule ^[^\.]+(\.html)?$ spip.php [QSA,E=url_propre:$0,L]

RealET a écrit :

* Matthieu Marcillaud tapuscrivait, le 27/02/2009 14:19:

Matthieu Marcillaud a écrit :

Cependant, en regardant, même l'url qui arrive ($url_propre) ne comporte pas le '/index.html', mais juste 'index.html', donc il ne risque pas non plus d'être enlevé.

Et ce 'index.html' est attribué par une variable $_SERVER['REDIRECT_url_propre'] et je n'arrive pas à trouver où est-ce qu'elle se créé cette variable là.... non de non ! Je ne comprends pas !

Dans le .htaccess ?
RewriteRule ^[^\.]+(\.html)?$ spip.php [QSA,E=url_propre:$0,L]

Je viens de comprendre, c'est APACHE qui la créé automatiquement effectivement, en prefixant de REDIRECT...
http://httpd.apache.org/docs/2.0/fr/custom-error.html

Bon... ça m'aide pas beaucoup...
faudrait un bon rewrite rules pour les /index.html dans le .htaccess ?