[htaccess] - erreur quand l'adresse termine par /

Nouveau WRInaute
Salut,

J'ai fais une recherche, et rien trouvé sur le sujet. En même temps pas toujours évident de faire des recherche sur des (*/). :p

Mon problème est assé bateau à mon avis, mais je suis vraiment pas à l'aise avec les htaccess. :s

Je bosse sur une ferme de blog faite en Dotclear2.

Le principe est d'avoir un seul répétoire dotclear pour tous les blogs, et de passer via l'url l'id du blog que l'on veut afficher.

Pour ça j'ai réussi à trouver ça :
Code:
RewriteRule ^([^/]*)(.*) /index.php$2 [E=DC_BLOG_ID:$1]
RewriteRule ^index.php/$ / [R=permanent]

Qui permet d'extraire l'id du blog de l'url -> http://www.domaine.tld/blog_id et de le passer à l'adresse http://www.domaine.tld/index.php via la variable $_SERVER['REDIRECT_DC_BLOG_ID'].

Pour le moment mon htaccess complète ressemble à ça :
Code:
Options +MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]+)(.*) /index.php$2 [E=DC_BLOG_ID:$1]
RewriteRule ^index\.php/$ / [R=permanent]

# Pour les redirections des flux RSS/Atom des categories
RewriteCond %{QUERY_STRING} ^cat=([A-Z][A-Za-z0-9_-]*)$
RewriteRule ^rss.php /feed/category/%1/rss2 [R=301]
RewriteCond %{QUERY_STRING} ^cat=([A-Z][A-Za-z0-9_-]*)$
RewriteRule ^atom.php /feed/category/%1/atom [R=301]

# Pour les redirections des flux RSS/Atom generaux
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^rss.php /feed/rss2 [R=301]
RewriteCond %{QUERY_STRING} ^type=co$
RewriteRule ^rss.php /feed/rss2/comments [R=301]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^atom.php /feed/atom [R=301]
RewriteCond %{QUERY_STRING} ^type=co$
RewriteRule ^atom.php /feed/atom/comments [R=301]

# Billet : YYYY/MM/DD/##*
RewriteRule ^index.php/(\d{4})/(\d{2})/(\d{2})/(\d+.+)$ /post/$1/$2/$3/$4 [R=301,L]

# Categorie : Nom-categorie
RewriteRule ^index.php/([A-Z][A-Za-z0-9_-]*)$ /category/$1 [R=301,L]

# Archives : YYYY/MM
RewriteRule ^index.php/([0-9]{4})/([0-9]{2}) /archive/$1/$2

Ce qui fonctionne très bien, sauf dans un cas. :evil:

Quand l'url est juste le nom de domaine + l'id du blog terminé par /
ex. http://www.domaine.tld/blog_id/

Ce qui est plutot embêtant. :(

Il semblerait que ça coince au niveau de la récupération de l'id, car dans le php il ne récupère rien comme valeur.

Une petite idée ?
 
Nouveau WRInaute
Déja fais, mais c'est plus un problème de htaccess qui n'est pas propre à dotclear.

En gros il faut que je test si l'adresse termine par / et si le / final est le 2e de l'URL. si c'est le cas extraire l'id du blog avec la ligne :
Code:
RewriteRule ^([^/]+) /index.php$2 [E=DC_BLOG_ID:$1]
 
WRInaute discret
Ali_o_kan a dit:
Pour ça j'ai réussi à trouver ça :
Code:
RewriteRule ^([^/]*)(.*) /index.php$2 [E=DC_BLOG_ID:$1]
RewriteRule ^index.php/$ / [R=permanent]

Il y un truc qui m'interpelle!
pk / après index\.php sur la 2eme ligne
 
Nouveau WRInaute
A la base, cette ligne est présente pour faire sauter l'index.php si il est présent en fin d'url.

Mais je vient de la faire sauter, ça règle le problème !!!!

Comme quoi on s'acharne sur une ligne et le problème vient de celle d'à coté. :P

MERCI BEAUCOUP, je vais enfin pouvoir préparer mon sac, goto le sud! :)
 
Discussions similaires
Haut