2 index (index.html et index.php)

Nouveau WRInaute
Bonsoir à tous,

j'ai un petit soucis pour faire une règle,

j'ai un fichier index.html qui se charge par défaut à l'ouverture du site et un fichier index.php que je ne veux pas trimbaler dans l'url.

Donc sur ma page index.html j'ai des liens vers '?lang=fr&mod=page' non pas 'index.php?lang=fr&mod=page', je voudrai savoir comment faire avec l'urlrewriting pour lui dire quand il y a des paramètres de rediriger sur index.php au lieu d'afficher index.html.

Si quelqu'un a une petite idée sur la question ;)

Bye et merci d'avance !
 
Nouveau WRInaute
ah oui c'est sûr que dans ce cas là c'est radical j'ai plus le problème mais j'en ai besoin de ce fichier malheureusement, j'ai besoin des 2 dans le même dossier notamment le .html pour charger une page d'accueil à la con et le reste fait parti de mon appli de gestion et je veux pas la mettre dans un dossier.

Si ça avais été facile j'aurais pas posé la question non plus hein ;), je me creuse la tête comme un fou quand même !
 
WRInaute discret
Pour garder ton système actuel tu peut tester dans index.php si tes paramètres sont présents, s'ils ne sont pas présent alors tu redirige vers une page correspondant à index.html (mais renomée en index2.php par exemple)
 
Nouveau WRInaute
oui j'y ai aussi pensé c'est vrai que c'est une alternative mais j'aurai voulu le faire grâce à l'url rewriting, mais si on me démontre par a + b que c'est pas possible dans ce cas je le ferais dans le code mais ça peut être interessant de pouvoir faire ça.

Merci pour vos réponses
 
WRInaute occasionnel
Si j'ai bien compris

Code:
        RewriteEngine On

        RewriteCond %{QUERY_STRING} ^$
        RewriteRule ^(.*)index\.php$    $1index.html [L]

        RewriteCond %{QUERY_STRING} !^$
        RewriteRule ^(.*)index\.html$    $1index.php [L]

/repertoire/index.html renvoie le contenu de index.html
/repertoire/index.html?param renvoie le contenu de index.php, avec les paramètres passés

et inversement

/repertoire/index.php renvoie le contenu de index.html
/repertoire/index.php?param renvoie le contenu de index.php

Ca marche aussi avec /repertoire/ et /repertoire/?param
Je l'ai testé avec un fichier de conf, ca devrait fonctionner dans un .htaccess
 
Nouveau WRInaute
Waouh une réponse d'aussi bonne heure et qui fonctionne ça fait plaisir, merci infiniment !!!

Astuce à garder dans un coin quand même car bien pratique ;)

on peut rajouter une condition si le fichier index.html n'existe pas afficher le index.php même sans paramètres ?

Merci
 
Nouveau WRInaute
Bon ben j'ai fait ça comme ceci et ça passe :
Code:
RewriteCond ^(.*)index\.html -f
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)index\.php$ $1index.html [L]
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(.*)index\.html$ $1index.php [L]

Merci ;)
 
WRInaute impliqué
Sinon, on ne sait jamais, si un jour tu veux changer ta page d'accueil (pque j'ai l'impression que c'est index.html ), dans ton .htaccess

Code:
DirectoryIndex index.php
 
Nouveau WRInaute
oui dans la config apache l'ordre c'est index.html index.php...
je l'ai demandé avant de faire le fichier .htaccess comme présenté ici, enfin bon c'est pas bien grave ce n'est qu'un ordre qu'on peux définir comme on veux !

Bye
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut