Problème Rewriting chez 1&1

plus2notoriete

Nouveau WRInaute
Hello,

Je suis hébergé chez 1&1, j'aimerais réécrire les URLs de mes news (classique), j'ai donc créé le fichier .htaccess que j'ai placé à la base de mon site mais lorsque je test, il ne se passe rien.

J'ai pris pour exemple cette URL : http://www.plus2notoriete.com/actu.php?id=15
Dans le test je voudrais que actu.php?id=15 soit remplacer par bonjour.php

voici donc mon .htaccess
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^bonjour.php$ actu.php?id=15 [L]

Mon fichier est-il bien écrit ?
Est-ce 1&1 qui pose problème ?

Merci
 

Giustino

WRInaute discret
Pas d'erreur apparente, normalement ton code devrait fonctionner.
Vérifie que le rewriting est activé (par exemple phpinfo() avec php).

EDIT: par précaution, ajoute RewriteBase
Code:
RewriteEngine on
RewriteBase /

RewriteRule ....
 

plus2notoriete

Nouveau WRInaute
Merci, j'ai ajouté le RewriteBase / mais ça ne change rien, c'est comme si mon .htaccess passait inaperçu.
J'ai contacté 1&1 il m'ont dit que l'URL rewriting était actif chez eux, le mec a regardé mon .htaccess et il n'a pas vu d'erreur non plus. :?
Voici mon phpinfo()....je ne vois pas le MOD_rewrite

http://www.plus2notoriete.com/phpinfo.php
 

zeb

WRInaute accro
plus2notoriete a dit:
je voudrais que actu.php?id=15 soit remplacer par bonjour.php

Code:
RewriteRule ^bonjour.php$ actu.php?id=15 [L]
sens de la réécriture :
            ------------    >>>>>>>>>>>
la tu fait exactement le contraire ... de plus tu utilise les caractères de début et fin donc tu bloque tous les cas que tu souhaite traiter.
 

Giustino

WRInaute discret
@zeb
Je pense plutôt qu'il désire accéder à http://www.site.com/bonjour.php et que ça pointe sur http://www.site.com/actu.php?id=15 et dans ce cas c'est correct, ou alors j'ai mal compris sa demande :)

@plus2notoriete
Finalement, zeb me fait hésiter en relisant ta demande. Veux-tu accéder à http://www.site.com/bonjour.php et afficher le même contenu que http://www.site.com/actu.php?id=15 ou veux-tu plutôt accéder à http://www.site.com/actu.php?id=15 et que ça te redirige vers http://www.site.com/bonjour.php ?

Si c'est la première solution, alors j'ai déjà tout dit.
Si par contre c'est la deuxième solution, alors désolé j'avais mal compris et voici la solution:
Code:
RewriteEngine on
RewriteCond   %{QUERY_STRING}   ^id=([0-9]+)$
RewriteRule   ^actu.php$   bonjour.php [R=301,L]
 

plus2notoriete

Nouveau WRInaute
@Giustino, je veux accéder à http://www.site.com/bonjour.php et afficher le même contenu que http://www.site.com/actu.php?id=15

Ceci n'est qu'un test, plus tard je voudrais que http://www.site.com/actu.php?id=15 devienne http://www.site.com/titre-de-l-actu-15
 

Giustino

WRInaute discret
Alors ça devrait fonctionner, c'est étrange...

Un petit test: crée un fichier test.php
Code:
<?php
echo "URL: " . $_GET['url'];
?>

Et dans ton htaccess:
Code:
RewriteEngine on
RewriteRule   ^(.*)$   test.php?url=$1 [L]

Avec ceci, n'importe quelle url bidon devrait pointer sur ton fichier test.php et afficher l'url accédée
 

plus2notoriete

Nouveau WRInaute
j'ai fait ton test.

Si j'entre une adresse du style test.php?url=6 ça m'ouvre bien mon test.php d'origine.
Mais je ne vois pas où tu veux en venir avec ce test.
je l'ai placé ici : www.plus2notoriete.com/rewritetest/test.php

j'ai enve de créer une erreur 500 dans mon .htaccess pour voir si il est lu par le serveur.
ça me casse la tête
 

Giustino

WRInaute discret
Non en fait tu ne dois pas y accéder directement :)
Je vois que tu n'as pas bien compris. Le but ici est d'accéder à n'importe quelle url bidon et ça pointera sur ce fichier test.php
Exemple: tu peux accéder à http://www.plus2notoriete.com/une-url-bidon/hihaaaaa/blabla.html
En somme, tu ne dois pas accéder directement à test.php sinon tu ne vérifies rien sur le rewriting dans ce cas-ci.

Mais je vois que tu es prêt à tester n'importe quelle solution alors je vais te donner la plus simple/basique: toutes les urls redirigées sur l'index.php (j'avais évité celà vu que ton site est déjà en ligne mais c'est juste temporaire, histoire de tester...)

Ton htaccess à la racine:
Code:
RewriteEngine on
RewriteRule   ^.*$   index.php [L]

Test: tu accèdes à n'importe quelle url et tu auras le contenu de ton index affiché.
Exemple: http://www.plus2notoriete.com/une-url-bidon/hihaaaaa/blabla.html

Si ça fonctionne, alors tu as bien le rewriting activé.
Sinon (erreur 404), mes condoléances, tu n'as pas le rewriting activé :D
 

plus2notoriete

Nouveau WRInaute
Ok merci, j'ai donc testé et ça marche bien, je retourne maintenant sur mon index avec n'importe quelle url.

J'ai remis mon htaccess :
Code:
RewriteEngine on
RewriteBase /
RewriteRule actu.php?id=$2 actualite/([a-zA-Z0-9\-]+)-([0-9]+) [L]

# PHP5
AddType x-mapp-php5 .php .php4
AddHandler x-mapp-php5 .php .php4

Toujours pas de rewrite lorsque je me rend sur /actu.php?id=16 par exemple.
y'a-t-il une ligne de code à mettre sur mon fichier actu.php qui lui indiquerai d'afficher le-titre-de-mon-actu-16 ?
 

Giustino

WRInaute discret
plus2notoriete a dit:
Ok merci, j'ai donc testé et ça marche bien, je retourne maintenant sur mon index avec n'importe quelle url.

Parfait ! :)

plus2notoriete a dit:
J'ai remis mon htaccess :
Code:
RewriteEngine on
RewriteBase /
RewriteRule actu.php?id=$2 actualite/([a-zA-Z0-9\-]+)-([0-9]+) [L]

# PHP5
AddType x-mapp-php5 .php .php4
AddHandler x-mapp-php5 .php .php4

Toujours pas de rewrite lorsque je me rend sur /actu.php?id=16 par exemple.
y'a-t-il une ligne de code à mettre sur mon fichier actu.php qui lui indiquerai d'afficher le-titre-de-mon-actu-16 ?

Encore une fois, tu inverses la logique.
Tu dois faire l'inverse dans ton cas:

Code:
RewriteRule ^actualite/([a-zA-Z0-9\-]+)-([0-9]+)$  actu.php?id=$2 [L]

Maintenant, tu accèdes à la nouvelle adresse actualite/titre-bla-bla-16 et tu obtiendras le même contenu que actu.php?id=16
 

plus2notoriete

Nouveau WRInaute
RESOLU Problème Rewriting chez 1&1

RESOLU !!!!!

Effectivement j'avais inversé la logique dans mon .htaccess MAIS SURTOUT je croyais que la réecriture se faisait automatiquement, j'avais pas pensé à renseigné correctement mon PHP, mon lien pointait toujours vers actu.php?id=16. :?

Voici donc mon htaccess
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule blog/([a-zA-Z0-9\-]+)-([0-9]+) actu.php?id=$2  [L]


# PHP5
AddType x-mapp-php5 .php .php4
AddHandler x-mapp-php5 .php .php4

et mon code php pour accéder à l'url réecrite :
Code:
<?php { echo "<a href=\"http://www.plus2notoriete.com/blog/{$donnees["url"]}-{$donnees["id"]}\"> {$donnees["titre"]} </a>"; } ?>

Donc merci pour votre aide qui m'a poussé à fouiner et à faire des tests ! OUF cette histoire est terminée. :mrgreen: :mrgreen: :wink:
 

Discussions similaires

Haut