URL Rewriting chez Free (2) : la solution sans .htaccess

WRInaute occasionnel
Pour repondre a un certain nombre de demandes en MP, voici la solution que j'ai trouve pour faire du pseudo url rewriting chez free.
L'idee est d'utiliser la page d'erreur 404 (ok c'est un peu tordu mais ca marche).

1) dans le .htaccess, mettre
ErrorDocument 404 /erreur404.php

2) supposons que vos articles soient du style /article.php?id=1, que vous reecrivez en /titre-de-article-1

<?

$URL = pathinfo("$REQUEST_URI"); // recupere le chemin demande

$vrai_chemin = $URL["basename"]; // ici va recuperer "/titre-de-article-1"

$tableau_chemin = explode("-",$vrai_chemin); // on obtient un tableau ["/titre","de","article","1"]

$id = $tableau_chemin[(count($tableau_chemin)-1)]; // maintenant $id=1

header("HTTP/1.0 200 OK");

header('Location: /article.php?id='.$id); // on fait une redirection code 200 vers /article.php?id=1

?>

Voila ! Mon fichier 404.php ne prend pas en compte les 'vraies' erreur 404, mais c'est facile a faire...

En gros pour resumer, j'utilise la possibilite de personnaliser la page 404 avec le fichier .htaccess, et simule une regle de reecriture a l'interieur de ce fichier... J'espere avoir ete claire :roll:
 
WRInaute discret
Ca me semble bizarre quand meme cette histoire. Les robots recoivent donc une erreure 404 ?? pas très bon en terme de référencement ! :D
 
Nouveau WRInaute
Depuis le temps

Depuis le temps que cette solution a été proposé, quelqu'un peut confirmer si ça a marché? Sinon est-ce que ça peut marcher avec laposte?
 
WRInaute occasionnel
ça doit marcher, mais pour google c comme si il y avais 2 pages différentes avec le meme contenu...je suis pas sur que ça soit trés efficace en terme de référencement.
 
Nouveau WRInaute
Pour repondre a un certain nombre de demandes en MP, voici la solution que j'ai trouve pour faire du pseudo url rewriting chez free.
L'idee est d'utiliser la page d'erreur 404 (ok c'est un peu tordu mais ca marche).------------

----------
Parce qu'à la base, cé pas possible de faire chez free du .htacces "classique??

Et sinon si on poosède un site non PHP chez free, est-ce que le .HTACCES est réalisable...et si oui comment

Merci d'avance

Au plaisir

@+
 
WRInaute discret
je crois bien que chez free le mod rewrite est desactivé mais suis pas sur, si qq peut confirmer ...
bon enfin dans tt les cas chez free c est special, avec tes htaccess tu peux pas faire d url rewritting et tu peux faire de la restriction d acces mais pas comme chez tt le monde car ils ont trouver bon de modifier apache, donc voir la doc de free pour ca.
je trouve un peu con mais enfin bon, ca me fait penser aux anglais qui sont obligés de se diferencier ! pffff
si ils sont pas contents, z ont qu a developper leur apache a eux ^^

++
 
WRInaute discret
j ai voulu verifier si le mod rewrite est desactivé chez free avec la fonction phpinfo mais elle est desactivée aussi ... :lol:

++
 
WRInaute impliqué
A ce deuxieme jour,des nouvelles pages ainsi crees apparaissent dans l'index google, avec un titre, une description !
-> conclusion, la methode que j'ai ecrite fonctionne correctement
 
WRInaute impliqué
Salut,

Je viens de lire cer article avec énormément d'intérêt, étant donné que j'ai découvert récemment (et à mon plus grand désarroi) que Free n'autorisait pas l'URL-Rewriting.
donc, selon ta méthode, on pourrait remplacer une règle d'URL-Rewriting par un redirect si le fichier a un paramètre; mais quand on en a plusieurs ?
Si tu as une autre idée géniale de la même catégorie que la première, je suis preneur. :D
 
I
iom555
Guest
URL Rewriting sans .htaccess

Salut GAMING ZONE,
je suis hebergé chez FREE et j'ai un probleme pour faire de l'urlrewriting (normal)
pourrait tu s'il te plait expiciter un peu plus ta solution ...

merci a toi

@++++++++++++++
 
Nouveau WRInaute
Bonjour,

Quelqun pourrait-il concrêtement m'expliquer comment réécrire une URL sur l'hébergeur Free.

L'URL a transformer est /view/1/1.php en /view.php?&id=1&pid=1

Merci d'avance :)
 
WRInaute discret
si tu rélise un patch a phpbb je crois que tt le monde est preneur et aussi un truc pour spip vue quil vien detre installé sur free
 
WRInaute impliqué
c'est incroyable, vous savez pas lire ou quoi ? tout a ete explique clairement ! maintenant c a vous de jouer, c quand meme pas si difficile de coder 3 lignes de php !
 
WRInaute occasionnel
Désolé mais ce système ne fonctionne pas ou alors il est incomplet
Merci à l'auteur de donner plus de précisions
Car on met des codes sur un forum c'est facile mais autant que cela fonctionne et que tout le monde puisse en profiter débutant et expert sinon cela ne sert à rien
 
WRInaute passionné
ne me dis pas que tu as laissé article.php dans le code source et que tu as besoin de nous pour te dire que tes pages sont en .php3, par exemple
 
WRInaute occasionnel
Je souhaite utiliser ce script sur un annuaire MyPHPAnnuaire mais je cale
J'ai bien mis le .htaccess mais le script faut il le mettre dans le fichier erreur404.php?
Et ensuite faut'il réecrire les URL si oui comment faire enfin je cale complet
Ou il faut juste utiliser ce code tel quel,plus de précisions merci
 
WRInaute passionné
jean28 a dit:
J'ai bien mis le .htaccess mais le script faut il le mettre dans le fichier erreur404.php?
oui
Ou il faut juste utiliser ce code tel quel
évidemment non.. ce code n'a sans doute pas été conçu pour ton site :lol:

c'est comme dans la vie, faut faire preuve de débrouillardise.. commencer par lire le script et voir qu'il redirige vers article.php ... se demander vers quelle page tu veux qu'il redirige... faire les modifs... faire des tests
rectifier.. faire des tests
rectifier.. faire des tests
rectifier.. faire des tests
rectifier.. faire des tests
rectifier.. faire des tests
rectifier.. faire des tests

c'est comme ça qu'on apprend :wink:
 
WRInaute discret
Je suis sur free aussi et j'ai mis en place cet URL rewriting sur une partie de mon site pour faire des tests.
Ca fonctionne pas mal pour le moment....

Un exemple (il y a des paroles de chansons sur mon site):

h**p://alexandre.delan.free.fr/lyrics/artist_francis_cabrel/album_samedi_soir_sur_la_terre/parole_les_vidanges_du_diable/a_7-p_877.php
à la place de :
h**p://alexandre.delan.free.fr/lyrics/index.php?a=7&p=877
C'est quand même mieux....

voir dans google :
https://www.google.fr/search?hl=fr&q=+si ... cher&meta=

Par contre, ca ne marche pas en local. J'ai un serveur IIS installé sur mon PC, est-il possible que les url rewriting puisse fonctionner avec IIS ?? :?:
et si oui, comment ??
:?:

Merci d'avance pour vos réponses, avant de passer tout mon site en url rewriting, j'ai vraiment besoin de le tester offline avant.
 
WRInaute discret
.access ne fonctionne pas sous windows.... Je crois que je vais pas m'en sortir... Ou alors, il faut que j'installe un serveur apache sur mon pc (winXP)...
 
Nouveau WRInaute
Merci beaucoup à "lesbonsplansdesophie" ou "gaming zone", on ne sait plus trop, mais le code et l'idée sont bel et bien là!!!
Ca fait un bon moment que je galère, et effectivement la politique de "free" comporte quelques mystères insondables... J'en étais à faire des essais moi-même, mais inutile de dire que, débutante en php, je galérais un peu!
J'ai pas encore essayé, mais en effet, ça semble tout à fait cohérent! Quant au référencement par google, doublons, etc., ce grand monsieur doit en voir d'autres, et des pires!
Pour finir, petite réponse à xela2000: easyphp pourrait être une solution? J'ai trouvé ça génial (et encore une fois, je suis complétement débutante!)
Bon grand WE à tous
 
WRInaute impliqué
netsba a dit:
je demande pas la lune moi http://free.saad.free.fr/article.php3?id_article=238 comment faire pour quil soit en .htm
Salut tu aura du mal a le faire ,
http://support.free.fr/web/pperso/erreur_perso.html a dit:
jPage d'erreur personnalisée

Cette fonctionnalité vous permet de remplacer (entre autres) le message de type 404 (Not found) par un texte personnalisé ou par une redirection sur une autre URL (locale ou externe).

On utilise pour cela la commande ErrorDocument dont voici quelques exemples d'utilisation :

ErrorDocument 404 /monfichier404.html
ErrorDocument 404 http://monlogin.free.fr
ErrorDocument 403 /accesrefuse.html

Cette commande doit se trouver dans un fichier .htaccess dans le répertoire dont vous souhaitez rediriger les messages d'erreurs (typiquement la racine de votre site web mais pas obligatoirement).
Notes: Ne fonctionne pas avec php3

Pour IIS, il faut configurer son serveur web,administration serveur web, page d'erreur personnalisé ( qui est comme le .htacess de apache mais en visuelle avec des dial box ...)
 
WRInaute discret
Pour IIS, il faut configurer son serveur web,administration serveur web, page d'erreur personnalisé ( qui est comme le .htacess de apache mais en visuelle avec des dial box ...)

Ca y est j'ai réussit à configurer IIS pour modifier mes pages d'erreur.
Par contre, $REQUEST_URI ne fonctionne pas. Je n'arrive donc pas à récupérer la page demandé au préalable.

Il va falloir que j'ai deux codes différents pour mon fichier php qui récupère l'erreur. En gros, je ne serais jamais sure si mes test réalisé en local (IIS) seront les même sur le net (linux et apache)

Peut être qu'il vaut mieux en effet que j'installe apache.
 
WRInaute impliqué
xela2000 a dit:
Pour IIS, il faut configurer son serveur web,administration serveur web, page d'erreur personnalisé ( qui est comme le .htacess de apache mais en visuelle avec des dial box ...)

Ca y est j'ai réussit à configurer IIS pour modifier mes pages d'erreur.
Par contre, $REQUEST_URI ne fonctionne pas. Je n'arrive donc pas à récupérer la page demandé au préalable.

Il va falloir que j'ai deux codes différents pour mon fichier php qui récupère l'erreur. En gros, je ne serais jamais sure si mes test réalisé en local (IIS) seront les même sur le net (linux et apache)

Peut être qu'il vaut mieux en effet que j'installe apache.
c'est peut etre une mauvais install du php avec IIS, ou un mauvais appel..
Il faut bien mettre un /fichier_gerant_le_404.php (une vrai 404) et non http://site.local.com/fichier_gerant_le_404.php (une redireection 302 )
Sinon, mon conseil serais que tu te chope un vieux PC pour y installer linux, apache et php, tu en apprendrais beaucoup ...
Sinon, easyphp etait ( à l'epoque que je l'utilisais ) tres bien pour les plateformes windows, facile a installer, tu as apache, php, et mysql
 
WRInaute discret
j'ai bien mis l'URL /fichier_gerant_le_404.php.

Sinon, avant j'utillisais effectivement easyphp. Qui fonctionnait plutôt pas mal. Puis après une réinstallation, je me suis dit qu'il fallait mieux passer à IIS vu que j'étais sur windaub histoire de l'apprendre... j'ai réussit à mettre en place le ftp le smtp et bien sur le http.

L'idée d'installer linux est une super idée, je l'avais déjà dans la tête depuis pas mal de temps. Je m'étais dit que j'attendrais d'avoir internet pour me lancer dans linux (ca va, j'ai déjà utilisé un peu), maintenant, j'ai l'ADSL mais j'ai pas encore franchi le pas.... motivation extreme nécessaire.

Je suis déjà passé à firefox, thunderbid et openoffice mais sur windows. Tout cela pour dire que je ne serais pas tout à fait perdu sur linux.

Sinon, red hat, mandrake ou debian ? J'ai deux vieux pc en pièce donc je pourrais en tirer un. Mandrake plus facile, debian plus pro.
 
Nouveau WRInaute
error 404

Je confirme : ca fonctionne. (Je l'ai déjà testé.)

La seule chose est qu'il reste important de signaler au client que la page a ou non été trouvée.

Dans les exemples donnés aucun test n'est réalisé et un code HTTP 200 est toujours retourné.
Il serait préférable de retourner un HTTP 404 si le nom ne correspond à rien ...

exemple :

Code:
<?
$i = 1; // test : trouvé ou non trouvé
if($i) {
  header("HTTP/1.0 200 OK");
  echo "<html><header><title>test</title></header><body>".$_SERVER["REQUEST_URI"]."</body></html>";
}
else {
  header("HTTP/1.0 404 Not Found");
  echo "<html><header><title>Page Not Found</title></header><body>".""."</body></html>";
}
?>
 
Nouveau WRInaute
cette methode fonctionne tres bien mais a le gros probleme de n afficher que des pubs d interet public si on a une pub adsense a afficher sur la page... :(
 
Nouveau WRInaute
Salut !
Et pour online ça fonctionne ce sytème ??

:roll:

lesbonsplansdesophie a dit:
Pour repondre a un certain nombre de demandes en MP, voici la solution que j'ai trouve pour faire du pseudo url rewriting chez free.
L'idee est d'utiliser la page d'erreur 404 (ok c'est un peu tordu mais ca marche).

1) dans le .htaccess, mettre
ErrorDocument 404 /erreur404.php

2) supposons que vos articles soient du style /article.php?id=1, que vous reecrivez en /titre-de-article-1

<?

$URL = pathinfo("$REQUEST_URI"); // recupere le chemin demande

$vrai_chemin = $URL["basename"]; // ici va recuperer "/titre-de-article-1"

$tableau_chemin = explode("-",$vrai_chemin); // on obtient un tableau ["/titre","de","article","1"]

$id = $tableau_chemin[(count($tableau_chemin)-1)]; // maintenant $id=1

header("HTTP/1.0 200 OK");

header('Location: /article.php?id='.$id); // on fait une redirection code 200 vers /article.php?id=1

?>

Voila ! Mon fichier 404.php ne prend pas en compte les 'vraies' erreur 404, mais c'est facile a faire...

En gros pour resumer, j'utilise la possibilite de personnaliser la page 404 avec le fichier .htaccess, et simule une regle de reecriture a l'interieur de ce fichier... J'espere avoir ete claire :roll:
 
Nouveau WRInaute
Bonjour!
J'essaie, sans grand résultat (mais le "php" reste encore un grand mystère pour moi!) de mettre en place ce code sur ce site
http://circul.arts.free.fr/agenda
bien référencé sur google, mais sans son contenu (???).
Je m'explique: si je fais une recherche sur le titre de la page (agenda arts cultures spectacles), aucun problème. Si je fais une recherche sur les événements des mois précédents, aucun problème non plus. Mais si je fais une recherche sur le mois en cours... aucun résultat!!! (même problème sur aol, msn, netscape..., mais pas sur yahoo et altavista).
Je me dis (mais pas sûre!) que ça tient peut-être à l'écriture des urls... donc j'essaie, et voici ce que j'ai "écrit", sans doute avec des erreurs, puisque ça ne fonctionne pas:
ErrorDocument 404 /erreur404.php

<?

$URL = pathinfo("$REQUEST_URI");

$vrai_chemin = $URL["basename"];

$tableau_chemin = explode("-",$vrai_chemin);

$month = $tableau_chemin[(count($tableau_chemin)-1)];&$year = $tableau_chemin[(count($tableau_chemin)-1)];

header("HTTP/1.0 200 OK");

header('Location: /index.php?month='.$month&year='.$year);
?>

Codes généraux du site ici:
http://xavier.lequere.net/xlagenda

Quelqu'un pourrait-il maider?
Merci d'avance, et en tout cas bonne journée... ou bon pont!
 
WRInaute discret
Il y a un problème avec cette ligne.

$month = $tableau_chemin[(count($tableau_chemin)-1)];&$year = $tableau_chemin[(count($tableau_chemin)-1)];

après cette ligne $month = $year :roll:

$month = $tableau_chemin[(count($tableau_chemin)-1)];
$year = $tableau_chemin[(count($tableau_chemin)-2)]; par exemple...

Un autre pb avec cette ligne

header('Location: /index.php?month='.$month&year='.$year);

correction

header('Location: /index.php?month='.$month.'&year='.$year);
 
Nouveau WRInaute
Merci pour la réponse, xela!
J'ai donc corrigé... sans plus de résultat.
Je me suis dit ensuite que peut-être c'étaient ces "1" et "2" qui n'allaient pas. J'ai remplacé par "m" et "Y": toujours "internal sever error 500".
J'ai aussi essayé de remplacer "year" & "month" par "date": sans changement!
Je comprends un peu plus, mais sans doute pas encore assez!
Je ne désespère pas: je vais bien finir par y arriver!
Merci encore,et bonne journée à tous
 
WRInaute discret
Ca dépent comment tu réécris tes urls....

Donne ton code aussi de récécriture des url, la tu donne le décodage...
 
Nouveau WRInaute
Re-bonjour, xela... et aux autres!
Je ne comprends pas très bien ta question..

Voici en tout cas le dernier ".htaccess" que j'ai essayé de faire:
ErrorDocument 404 /erreur404.php

<?

$URL = pathinfo("$REQUEST_URI");

$vrai_chemin = $URL["basename"];

$tableau_chemin = explode("-",$vrai_chemin);

$month = $tableau_chemin[(count($tableau_chemin)-m)];
$year = $tableau_chemin[(count($tableau_chemin)-Y)];

header("HTTP/1.0 200 OK");

header('Location: /index.php?month='.$month.'&amp;year='.$year);

?>

et l'écriture des urls que je trouve sur ma page:
"/agenda/index.php?day=31&amp;month=05&amp;year=2005"
(je le cite, car si je comprenais exactement comment c'est généré, en dehors des erreurs d'écriture, je pense que j'aurai déjà la solution!).

Je ne sais quand-même pas si j'ai répondu à ta question...
Bonne soirée
 
WRInaute passionné
Salut !

Pour commencer,
dans un header/location, pas besoin d'échapper les "et commerciaux" :
mets "&" au lieu de "&amp;"


Edit :
Attends, tu mets ton code PHP dans le .htacces ?????
 
Nouveau WRInaute
Dj_Apx... te revoilou!
A vrai dire, j'avais commencé par un simple & (ça y est d'ailleurs dans une de mes "citations"... Mais comme je ne peux fonctionner que par essais et erreurs, j'ai essayé aussi ça! Je pense que ça ne change pas grand chose... et que ça ne marche toujours pas!
 
Nouveau WRInaute
Je me pose une question qui risque de vous paraître stupide, mais tant pis!
Si on regarde les 2 premières lignes du code, elles sont valables dans tous les cas?
- Le "request uri" fonctionne toujours de la même manière?
- Et, surtout, y a-t-il toujours un "basename"? Ou serait-ce justement cette ligne qu'il faudrait changer pour moi?
 
WRInaute discret
Ma question était comment tu réécris tes url ? :p

Le but de l'URL Rewriting (comme son nom l'indique) c'est d'écrire différement l'url pour y ajouter des mots clefs pour google et surtout pour enlever les variables après le ? (qui n'est pas géré par tous les moteurs) .

Ton url normal actuelle est :
/agenda/index.php?day=31&amp;month=05&amp;year=2005

Bref tu peux par exemple la réécrire comme cela :
/agenda/index-31-05-2005.htm
(si cette page parle de la recette de la tartiflette tu peux la réécrire aussi commme cela /agenda/recette_tartiflette-31-05-2005.htm)

Ensuite tu écris un .htaccess (ce que tu as fait) avec dedans seulement la ligne suivante :
ErrorDocument 404 /erreur404.php
Tu le place à la dans /agenda/

Et tu crée un fichier erreur404.php au même endroit que le .htaccess.
avec le code suivant (fait en fonction de l'exemple de réécriture) :
<?
//récupère l'url demandé soit : /agenda/index-31-05-2005.htm
$URL = pathinfo("$REQUEST_URI");
//retourne l'url sans les dossier : index-31-05-2005.htm
$vrai_chemin = $URL["basename"];

//découpe l'url suivant les délimiteurs . ou -
list($index, $day, $month, $year, $htm) = split('[.-]', $vrai_chemin);
// on obtient $index = 'index' // on s'en sert pas
// $day = '31'
// $month = '05'
// $year = '2005'
// et $htm = 'htm' // on s'en sert pas

header("HTTP/1.0 200 OK");
header('Location:/agenda/index.php?day='.$day.'&month='.$month.'&year='.$year);

?>
 
Nouveau WRInaute
Bonjour!

Tout d'abord, Dj_Apx, excuse-moi, je n'avais pas vu ton premier "edit"... ou en tout cas pas tout à fait compris ta question... non, je ne mets pas de php dans mon .htaccess! Me suis laissée emportée par le titre de la discussion. Désolée!

Merci ensuite xela2000... tes explications m'ont aidée à comprendre mes erreurs! Et j'ai réussi!!!
Mes pages sont donc renommées en "evenements-jour-mois-année". Pour répondre à ta question déjà ancienne... et que je n'avais pas comprise tout à fait!
J'avais par contre plus que bien compris à quoi sert la réécriture d'URL! Je ne me serais pas acharnée pendant des heures pour le faire, sinon!

Merci à tous! et bonne journée
 
Nouveau WRInaute
Si quelqu'un a un forum phpbb hebergé par free ou par un autre fournisseur qui permet de personnaliser la page 404 avec du php, et désire faire de l'url rewriting de son forum, de type

forums/viewforum.php?f=9 ----> forums/Liste_des_discussions/Méthodologie de la note de synthèse.html

Voir le forum Method'ag

(attention j'utilise le mod hypercell, il convient donc de bien cliquer sur les liens et non les cellules)

N'hésitez pas à me contacter via mon mail qui est thibault.florin(chez)free.fr
 
WRInaute discret
Moi, aussi je viens de mettre en place un url rewriting sur mon forum phpBB (sur free).

Je l'ai fait assez simple pour juste avoir des mots clefs dans mon url sans enlever les variables php dans l'url.
C'est super rapide à faire !!!

ex :
http://alexandre.delan.free.fr/phpBB2/v ... m.php?f=21
réécrit en :
http://alexandre.delan.free.fr/phpBB2/v ... m.php?f=21
(le nom du forum étant Virtools Dev)
et
http://alexandre.delan.free.fr/phpBB2/v ... c.php?t=44
en
http://alexandre.delan.free.fr/phpBB2/v ... c.php?t=44
(avec le nom du topic : "Qu'est ce que Virtools ?")

Comme je viens de le mettre en place, je n'ai pas encore vu les retombées.

Niveau code voici le .htcaccess
Code:
ErrorDocument 404 /phpBB2/erreur404.php

et le erreur404.php
Code:
<?php
$path_parts = pathinfo("$REQUEST_URI"); // recupere le chemin demande
$dirname = $path_parts["basename"];
header("HTTP/1.0 200 OK");
header('Location: /phpBB2/'.$dirname);
?>
 
Nouveau WRInaute
es ce que quelqu'un a réussit de url rewriting avec cette méthode sur online.net???
Car chez online $REQUEST_URI renvoie le add du fichier d'erreur 404 donner dans le .htaccess.
 
Nouveau WRInaute
Urls rewriting chez Free avec Spip

Comme cela n'est pas précisé, cette méthode fonctionne t-elle avec Spip ?
Car je n'arrive pas à la faire fonctionner après avoir essayer beaucoup de combinaison. Spip 1.8.1

Merci :(
 
WRInaute discret
Si tu es sur l'hebergeur free, oui, c'est possible.

Après, je ne connais pas Spip, mais il va falloir que tu changes tout tes liens/url... Il va falloir que tu mettes les mains dans le code et j'imagine que si tu as choisi Spip, c'est qu'à la base, tu ne connais pas trop la programmation php, mySQL ou que tu n'as pas envie de te fatiguer.

Bon courage
 
WRInaute passionné
xela2000 a dit:
Moi, aussi je viens de mettre en place un url rewriting sur mon forum phpBB (sur free).

Je l'ai fait assez simple pour juste avoir des mots clefs dans mon url sans enlever les variables php dans l'url.
C'est super rapide à faire !!!

ex :
-http://alexandre.delan.free.fr/phpBB2/viewforum.php?f=21
réécrit en :
-http://alexandre.delan.free.fr/phpBB2/virtools_dev/viewforum.php?f=21
(le nom du forum étant Virtools Dev)
et
-http://alexandre.delan.free.fr/phpBB2/viewtopic.php?t=44
en
-http://alexandre.delan.free.fr/phpBB2/virtools_dev/qu_est_ce_que_virtools__/viewtopic.php?t=44
(avec le nom du topic : "Qu'est ce que Virtools ?")
Pas terrible pour le positionnement sur les mots-clefs, le "_", tu devrais remplacer par des tirets :wink:
Conseil d'ami.
 
WRInaute discret
tu es sure ??

Ca change quoi ?

C'est pas grand chose à changer dans mon code, mais qu'est ce que ca va changer réelement.

Google n'aime pas les "_" ? :roll:
 
WRInaute discret
merci, je vais changer cela tout de suite. :)

Tiens en même temps un petit cadeaux, la fonction que j'ai crée pour enlever les caractères spéciaux d'un texte afin de l'utiliser dans l'url :
Code:
function viremerde($texte)
{
 for($i=0;$i< strlen($texte);$i++)
  {
  $n=$texte[$i];
  if (($n=='é') || ($n=='è') || ($n=='ê') || ($n=='ë')) $n='e';
  if (($n=='à') || ($n=='ä') || ($n=='â')) $n='a';
  if (($n=='ô') || ($n=='ö')) $n='o';
  if (($n>='A') && ($n<='Z')) $n=chr(ord($n)+32);
  if (($n<'0') || (($n>'9') && ($n<'a')) || ($n>'z')) $n='-'; 
  $texte[$i]=$n;
  }
return $texte;
}
 
Nouveau WRInaute
Salut ,

Thibault.Florin a dit:
Si quelqu'un a un forum phpbb hebergé par free ou par un autre fournisseur qui permet de personnaliser la page 404 avec du php, et désire faire de l'url rewriting de son forum, de type

forums/viewforum.php?f=9 ----> forums/Liste_des_discussions/Méthodologie de la note de synthèse.html

Voir le forum Method'ag

(attention j'utilise le mod hypercell, il convient donc de bien cliquer sur les liens et non les cellules)

N'hésitez pas à me contacter via mon mail qui est thibault.florin(chez)free.fr

Serait-il possible d'avoir plus d'expliquation sur cette méthode svp.

Merci.
 
WRInaute discret
Je pense qu'il faut mieux le contacter par mail (il le donne).

Par contre, je peux t'aider un peu du fait que j'ai fait un truc similaire sur mon forum phpBB avec hébergement free.

exemple :
http://alexandre.delan.free.fr/phpBB2/v ... .php?t=134
pour
http://alexandre.delan.free.fr/phpBB2/v ... .php?t=134

dans l'url tu as le nom du forum 'virtools-dev' et le nom du topic 'prog-a-la-mano'.

et
http://alexandre.delan.free.fr/phpBB2/v ... m.php?f=21
pour
http://alexandre.delan.free.fr/phpBB2/v ... m.php?f=21

niveau programmation, j'ai mis le fichier .htaccess et le fichier erreur404.php dans le repertoire /phpBB2/

.htaccess
Code:
ErrorDocument 404 /phpBB2/erreur404.php
erreur404.php
Code:
<?php
$path_parts = pathinfo("$REQUEST_URI"); // recupere le chemin demande
$dirname = $path_parts["basename"];
header("HTTP/1.0 200 OK");
header('Location: /phpBB2/'.$dirname);
?>
Grace à ce code, on peut mettre n'importe quoi entre
"http://alexandre.delan.free.fr/phpBB2/" et "viewforum.php?f=21"

ensuite, dans le code php du forum, il faut chercher tous les liens qui pointent vers un forum "viewforum.php?f=21" et tous vers un topic "viewtopic.php?t=134"

exemple : dans le fichier viewforum.php

après
Code:
if ( !($forum_row = $db->sql_fetchrow($result)) )
{
	message_die(GENERAL_MESSAGE, 'Forum_not_exist');
}
ajouter
Code:
$forum_name_m = viremerde($forum_row['forum_name']);

NB : la fonction viremerde, je l'ai déjà donné dans un post précédent dans ce topic.

ensuite à chaque fois que vous avez un "viewforum.$phpEx?" il faut ajouter nore $forum_name_m

exemple :
Code:
append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_id)
devient
Code:
append_sid($forum_name_m."/viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&amp;start=$start")

C'est le même principe pour les viewtopic

Bonne prog :wink:
 
Nouveau WRInaute
Salut , Je te remerci beaucoup xela2000 , j'ai utilisé ce que tu ma dit , mais la jai decidé de changer d'herbergeur , free c bien mais celà reste un "gratuit" , Donc je pense vos mieux payer un peu , et avoir quelque chose qui fonctionne comme il faut ...


Merci en tout cas :)
 
WRInaute passionné
Bonsoir à tous,

attention à ce genre de code :
Code:
header ("HTTP/1.0 200 Ok");
de même que celui-ci
Code:
header ("Status: 200 Ok");
le serveur renvoie (ceux de free.fr en tous cas) le code 302 "Moved Temporary", ce qui n'est pas recommandé en référencement. Plus précisemment le risque pour le référencement existe quand l'ancienne URL est déjà indexée (sinon logiquement non mais en pratique ?).

Il n'y a apparemment pas de solution dynamique pour forcer un 404 en 200 sans faire d'UR.
 
Nouveau WRInaute
Bonjour à tous, je suis nouveau et je vais bien commencer en vous annoncant que j'ai essayé la méthode citée dans ce topic mais je ne sais pas encore ce que ca donne donc je vous le dirai plus tard.
quoi qu'il en soit pour les intéressé, j'ai crée mon fichier erreur404.php de manière à ce que celui marche quelque soit le nombre de paramètres insérés dans l'url donc pour les intéressé .. :wink:

mais bon ce n'est pas pour ca que je viens vous parler. je voudrais savoir si le fait que mes url rewrités aient ou non une extension a une importance ou non dans le référencement.

en gros moi j'ai des url de ce style :
/index-toto-titi-tutu-tata

qui veux dire : /index.php?toto=titi&tutu=tata

est-ce qu'il vaut mieux que je mette ".html" ou ca change rien ?

ps : pour les intéressé de mon fichier, dites le moi et je le posterai ici :wink:
 
WRInaute passionné
Mets ".html" :
  • Ca a un sens (vu que ton document est codé en html)
  • Ca sera mieux interprété par le serveur (en cas de déplacement du site ?) : pas de risque de le prendre pour un dossier
  • Ca sera mieux pour l'utilisateur à mon avis
  • C'est peut-être plus facilement "compréhensible" pour quelques moteurs de recherche un peu boulets (et ça, ça court beaucoup les rues ces temps-ci)
 
Nouveau WRInaute
xela2000 a dit:
Par contre, $REQUEST_URI ne fonctionne pas. Je n'arrive donc pas à récupérer la page demandé au préalable.
C'est du PHP ça, alors as-tu installé PHP sous IIS ?
xela2000 a dit:
Il va falloir que j'ai deux codes différents pour mon fichier php qui récupère l'erreur. En gros, je ne serais jamais sure si mes test réalisé en local (IIS) seront les même sur le net (linux et apache)
Peut être qu'il vaut mieux en effet que j'installe apache.
Si tu mets PHP sous IIS, tu pourras faire du PHP et de l'ASP ;)
 
Nouveau WRInaute
Dj_Apx a dit:
Mets ".html" :
  • Ca a un sens (vu que ton document est codé en html)
  • Ca sera mieux interprété par le serveur (en cas de déplacement du site ?) : pas de risque de le prendre pour un dossier
  • Ca sera mieux pour l'utilisateur à mon avis
  • C'est peut-être plus facilement "compréhensible" pour quelques moteurs de recherche un peu boulets (et ça, ça court beaucoup les rues ces temps-ci)

ok merci :D
pour l'utilisateur on s'en fout un peu vu que ca n'apparait pas dans la barre d'adresse.

edit
désolé d'encore embeter mais j'ai un autre soucis, je voudrais maintenant gérer les vrais erreurs 404 et je ne vois pas trop comment pour le moment. serait-il possible que l'on m'aide ?
 
Nouveau WRInaute
Bonjour,
Je suis chez free et j'ai un lien comme
h**p://login.free.fr/modules.php?name=News&file=article&sid=624

Comment faire pour faire un url rewriting pour ce lien.

Merci
 
WRInaute occasionnel
Juste un bravo à l'auteur de ce topic.

Pour moi c'est l'une des meilleures astuces de l'année en matière d'url-rewritting !!!
 
Nouveau WRInaute
Et bien j'en suis l'auteur, j'espère juste que tu as raison,
tout ce que je peux dire, c'est que j'ai été inspiré par un ami : nfs, puis par des lectures: ici par exemple, "lesbonsplansdesophie" et par beaucoup d'essais et d'imagination.
Il est fort probable qu'il existe d'autres moyens que celui que j'ai cité, mais le mien fonctionnant, il me satisfait 8)
Si vous avez la moindre question n'hésitez pas. et faite parler de moi :roll:
 
Nouveau WRInaute
Salut, moi aussi souhaitant faire de l'urlrewriting sur free, j'ai appliqué la méthode de la page 404. Le Problème c'est que dans la page de traitement "erreur.php" la variable $REQUEST_URI" me donne la page actuelle et non celle depuis laquelle l'erreur 404 a été déclenché. Je Pense que c'est du aux serveurs free ?
Pourriez-vous m'en dire plus à ce sujet merci ?
 
Nouveau WRInaute
si tu as juste testé comme çaz en allant sur la page erreur.php, je ne suis pas sur que cela donne le même resultat que si tu as cliqué sur un lien "mort"
Maintenant il est possible que tu sois sur un serveur ou la fonction est diffèrente mais celà me parait étrange.
Enfin il faut savoir que free est avant tout un fai donc faut pas forcement en demander trop de leur part !!!
 
Nouveau WRInaute
Merci, mais tous de même, j'ai testé avec un lien mort, histoire de faire déclencher cette putain de page 404. Et là c'est le drame, je suis redirigé vers ma page d'erreur personalisée qui m'affiche à l'écran (via un echo $REQUEST_URI;) -> /erreur.php
 
Nouveau WRInaute
Pour information, la fonction pathinfo() sert a créé un tableau qui decoupe l'url ; ensuite tu peux acceder a différentes infos du style : basename...
Mais mon problème actuelle est de récupérer la bonne url avant de faire des traitement dessus ! merci de votre aide, mais je vais bientôt appelé le service technique de free pour savoir la config de leur serveur gratuit de merde.....
 
Nouveau WRInaute
redirection ou intégration totale ?

Bonjour,
Je suis nouveau sur le forum.

Je viens de faire le script (je suis chez free) et je me suis rendu compte que cela redirigeait vers la page en php...
Le "problème", c'est que j'ai vu que sur d'autres sites, l'adresse en .htm reste marquée dans le haut de la fenêtre...

Comment ça se fait ? C'est normal que ça redirige chez moi et pas chez les autres ?

Merci bien.. :roll:
 
Nouveau WRInaute
Et bien le probleme est délicat, en effet, pour que cela fonctionne, j'utilise la fonction include('page.php'); et cette fonction est en php, d'ou le fait que l'extension ne peut être diffèrente de php, sauf si free lit les balises php dans un fichier html.

Enfin si tu vois celà sur d'autres site, il est possible qu'ils ne soient simplement pas hébergé chez free. Si ce n'est pas le cas, tu peux toujours leur demander ;)

un dernière chose, je suis gentil, je viens de sortir le mod, donc je traine un peu ici et ailleurs mais il est expliqué clairement que le support se fait à la suite du mod, pour deux raisons:
- les personnes qui viennent télécharger le mod peuvent trouver rapidement une solution à un problème.
- je n'ai pas forcement l'occasion de me rendre sur les plusieurs site ou le mod est sorti.
Donc s'il vous plait ... Merci.
 
WRInaute discret
salut

voila j'ai reussi a faire l'url rewriting chez free
cependant mes url ne change pas : j'explique :

dans le navigateur j'ai tjs la page
Code:
description_film.php?var_description=29

cependant quand je survole un lien il y a bien ecrit par exemple urlrewriting-30

est bien comme sa que sa marche?

voici le fichier erreur 404
Code:
<?
$URL = pathinfo("$REQUEST_URI"); // recupere le chemin demande

$vrai_chemin = $URL["basename"]; // ici va recuperer "/titre-de-article-1"
$tableau_chemin = explode("-",$vrai_chemin); // on obtient un tableau ["/titre","de","article","1"]

$id = $tableau_chemin[(count($tableau_chemin)-1)]; // maintenant $id=1
header("HTTP/1.0 200 OK");

header("Location: description_film.php?var_description=$id");  // on fait une redirection code 200 vers /article.php?id=1
?>

et voici mon lien:
echo"<a href=urlrewriting-$resultat[code_film]>

voila merci par avance

ps mieux vaus faire un lien de type motclef-1 ou motclef-1.html?
 
Nouveau WRInaute
Si tu fais un echo de $URL dans ton fichier d'erreur 404, obtiens tu le lien sur lequel tu viens de cliquer ?

Car moi je suis aussi chez free et l'url que je récupère et en fait le lien vers le fichier erreur 404.

Dans ton .htaccess as tu mis :

ErrorDocument 404 http://login.free.fr/erreur404.php ou
ErrorDocument 404 /erreur404.php ?

Car moi la seconde solution ne fonctionne pas chez free !
 
WRInaute discret
dans mon fichier .htaccess j'ai mis juste ErrorDocument 404 /erreur404.php qui est a la racine

si je fais un echo oui sa marche
simplement d'en url du navigateur au lieu d'avoir comme certain motclef-1 j'ai description_film?var_description=1

va voir la http://e.dvd.free.fr et tu clique sur description d'un film par exemple
 
Nouveau WRInaute
C fou, mon htaccess ne veut pas entendre parler de

ErrorDocument 404 /urlrewriting.php

Pour ton pb, c'est normal vu que tu utilises la fonction header()
 
WRInaute discret
ok donc le fait que mon navigateur ecriver drecription?var=2 au lieu de motclef-2.html est pas grave
les moteurs prendront motclef-2 plutot que description....

moi j'avais un probleme avec le header j'ai mis des "" au lieu des cotes '' et plus de souci ave cle fichier htaccess

en tout cas merci de ton aide et chapeau a celui qui a trouvé sa c'est fort
++
 
Nouveau WRInaute
Pourquoi suis-je le seul a ne pas pouvoir intégrer ce bout de code dans mon .htaccess sous free ? il me fait une erreur 404

ErrorDocument 404 /urlrewriting.php
 
WRInaute passionné
Il y a quoi dans ton .htacess en ce moment ? sur le site free de ton www, si je fais webmontagne.free.fr/nimportequoi ça m'affiche le nom de la page que je demande :?
 
Nouveau WRInaute
C byzarre, depuis vendredi midi (12/08/2005), mon .htaccess
avec ErrorDocument 404 /urlrewriting.php fonctionne chez free !
Je ne cherche pas a comprendre, merci à Web RankInfo.
 
Nouveau WRInaute
Salut,

j'essaie désepérement de mettre en route l'url rewriting sur mon site Free + forum phpbb et rien à faire ça ne fonctionne pas.

J'ai fait plusieurs essais mais voici le dernier :

Fichier .htaccess mis à la racine de mon site :
Code:
ErrorDocument 404 /erreur404.php

fichier erreur404.php à la racine aussi :
Code:
<?

$URL = pathinfo("$REQUEST_URI"); // recupere le chemin demande

$vrai_chemin = $URL["basename"]; // ici va recuperer "/titre-de-article-1"

$tableau_chemin = explode("-",$vrai_chemin); // on obtient un tableau ["/titre","de","article","1"]

$id = $tableau_chemin[(count($tableau_chemin)-1)]; // maintenant $id=1


header("HTTP/1.0 200 OK");


header('Location: /phpbb/viewforum.php?titre='.$vrai_chemin);

?>


Le site que j'essaie "d'url rewriter" est : http://forum.flyernet.free.fr/phpbb/

merci de votre aide ;)
 
Nouveau WRInaute
¤.Occitania.¤ a dit:
Salut,

j'essaie désepérement de mettre en route l'url rewriting sur mon site Free + forum phpbb et rien à faire ça ne fonctionne pas.

J'ai fait plusieurs essais mais voici le dernier :

Fichier .htaccess mis à la racine de mon site :
Code:
ErrorDocument 404 /erreur404.php

fichier erreur404.php à la racine aussi :
Code:
<?

$URL = pathinfo("$REQUEST_URI"); // recupere le chemin demande

$vrai_chemin = $URL["basename"]; // ici va recuperer "/titre-de-article-1"

$tableau_chemin = explode("-",$vrai_chemin); // on obtient un tableau ["/titre","de","article","1"]

$id = $tableau_chemin[(count($tableau_chemin)-1)]; // maintenant $id=1


header("HTTP/1.0 200 OK");


header('Location: /phpbb/viewforum.php?titre='.$vrai_chemin);

?>


Le site que j'essaie "d'url rewriter" est : http://forum.flyernet.free.fr/phpbb/

merci de votre aide ;)

tu as bien changer manuellement tes adresses ??

quoi qu'il en soit, ca y est mon rewritting avec Free fonctionne parfaitement ! :D
voyez par vous même : https://www.google.fr/search?hl=fr&q=sit ... e.fr&meta=
bon, c'est vrai il n'y a pas encore beaucoup de résultats mais ca ca va venir 8)
 
A
Anonymous
Guest
lepretender a dit:
quoi qu'il en soit, ca y est mon rewritting avec Free fonctionne parfaitement ! :D
voyez par vous même : https://www.google.fr/search?hl=fr&q=sit ... e.fr&meta=
bon, c'est vrai il n'y a pas encore beaucoup de résultats mais ca ca va venir 8)

j'essaye desesperement d'url-rewrité mon forum mais sans succès, j'ai commencé par modifier le titre des pages "viewforum" et "viewtopic", ensuite j'ai installé le mod gest_session de cyberalien, mais là je cale ...je connais pas trop le php donc je sais pas trop quoi mettre dans le fichier "erreur404.php";
 
Discussions similaires
Haut