Aller au contenu

Confusion entre une url et un répertoire dans .htaccess


Sujets conseillés

Bonjour,

je m'explique

Soit une url :

http://www.site.tld/rss

redirigée vers :

http://www.site.tld/index.php?page=rss

Cette description est :

RewriteRule ^rss$ /index.php?page=rss [L]

Sur mon ancien hébergement mutu, ça marchait.

Maintenant, sur mon dédié, j'ai pas de redirection, je suis directement envoyé dans le répertoire :

http://www.site.tld/rss/index.php?page=rss

Comment remédié à ce problème ?

Déjà vu, mais incapable de poser la bonne question à Goo...

Bonne soirée,

Arnaud

Modifié par lenono69
Lien vers le commentaire
Partager sur d’autres sites

RewriteRule /?rss$ index.php?page=rss [L]

devrait marcher ;)

Bonjour Dan, et enchanté !

Merci pour cette réponse, mais malheureusement, cela ne fonctionne pas.

Il me semblait qu'il y avait une formule du genre :

RewriteCond %{REQUEST_FILENAME} !-d

Cela dit-il quelque chose ?

Merci à tous (et encore mes respects Maître ;) )

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Oui, cette condition existe bien.

Mais avec l'URL de ton site ce serait plus simple qu'avec site.tld ;)

Lien vers le commentaire
Partager sur d’autres sites

Bon, alors voilà avec l'url de mon site.

Je voulais pas faire de pub, mais j'avoue m'arracher les cheveux !

.info est en prod en mutu, .com est le dev en dédié.

Alors voilà, http://www.bdfci.info/apis et http://www.bdfci.info/rss mènent à des des pages d'information.

Et http://www.bdfci.com/apis amène au rep existant /apis et http://www.bdfci.com mène au rep rss qui existe aussi.

Dans mon .htaccess de bdfci.com, j'ai ceci :

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^apis$ /index.php?page=apis [L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^rss$ /index.php?page=rss [L]

Dans mon .htacces de bdfci.info, j'ai ceci :

RewriteRule ^apis$ /index.php?page=apis [L]
RewriteRule ^rss$ /index.php?page=rss [L]

Ce dernier fonctionne très bien !

Sur developpez.com, il y avait ce topic, mais j'ai pas tout compris.....

http://www.developpez.net/forums/d682611/w...est_filename-d/

Je ne vois pas mon erreur.

Merci d'avance !

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

C'est dans ton .htaccess de bdfci.com que tu fais erreur ...

Tu testes si rss et api sont des répertoires, et comme ce n'est pas le cas, la réécriture ne se fait pas ;)

Donc, soit tu supprimes la condition, soit tu l'inverses comme ceci :

RewriteCond %{REQUEST_FILENAME} !-d

Lien vers le commentaire
Partager sur d’autres sites

Merci Dan

Mais il me semblait que :

RewriteCond %{REQUEST_FILENAME} !-d

testait : si ce n'est pas un répertoire.

Or c'en est un !

ni

RewriteCond %{REQUEST_FILENAME} -d

, ni

RewriteCond %{REQUEST_FILENAME} !-d

ne fonctionnent:

Forbidden

You don't have permission to access /rss/ on this server.

Et en supprimant ces clauses de test,

Forbidden

You don't have permission to access /rss/ on this server.

RewriteRule /?rss$ index.php?page=rss [L]

RewriteRule ^rss$ /index.php?page=rss [L]

Pareil, ne fonctionne pas... :nonono:

J'ai essayé moult combinaison, rien ne marche... J'y pers mon latin (pas étendu, mais quelques notions quand même )

ARF......

IDIOT BETE QUE JE SUIS :whistling::sick::pissed:

Dan, tu étais si proche de la vérité !

Voilà la bonne combinaison :

RewriteRule /?rss/$ /index.php?page=rss [L]

Merci beaucoup de ton aide en tout cas !

Et bon week end à tous,

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

Mais il me semblait que :

RewriteCond %{REQUEST_FILENAME} !-d

testait : si ce n'est pas un répertoire.

Or c'en est un !

Il fallait dire que le répertoire /rss/ existait bien physiquement.

Dans ce cas il faut le / final parce qu'il est ajouté par Apache automatiquement, avant de passer la main à mod_rewrite.

;) Dan

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...