[Résolu] - php - URL Rewriting chez free (free.fr)

michel.leonard
WRInaute discret
WRInaute discret
 
Messages: 184
Inscription: 1 Juin 2010

[Résolu] - php - URL Rewriting chez free (free.fr)

Message le Ven Juil 23, 2010 12:41

Malgré l'absence du mod rewrite chez Free nous avons quand même la possibilité d'embellir nos adresse web grâce à un autre module apache appelé Multiview. Ce module permet d'accéder à un fichier sans mentionner son extension dans l'url. Grace à ceci et à une variable superglobale de PHP nous sommes en mesure de faire une réécriture d'adresse URL.

Dans une adresse du type http://webrank.free.fr/info/faire-url-rewriting-chez-free.html
Si le dossier info n'existe pas la page traitée sera info.php et servira à réécrire les URL.

Code: Tout sélectionner
<?PHP
$url = $_SERVER['PATH_INFO'];
?>

La variable url est une chaîne qui contiens "info/faire-url-rewriting-chez-free.html".

Le traitement peut se faire de multiples manières, par exemple avec explode() ou preg_match().
Code: Tout sélectionner
<?PHP
$get = explode("/", $url);
?>

Sullyvan
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 20 Mai 2008

Re: [Résolu] - php - URL Rewriting chez free (free.fr)

Message le Jeu Aoû 05, 2010 18:07

Merci c'est exactement ce que je cherchais pour un site perso !

Il m'avait pourtant semblé avoir lu sur une newsgroup que l'url rewriting fonctionnait sur Free.fr mais c'était en 2002-2004 ça

Reco !

michel.leonard
WRInaute discret
WRInaute discret
 
Messages: 184
Inscription: 1 Juin 2010

Re: [Résolu] - php - URL Rewriting chez free (free.fr)

Message le Ven Aoû 06, 2010 6:51

De rien, pour aller un peu plus loin avec les expressions régulières on peut faire comme suit , c'est un peu plus propre que explode, puisque les caractères comme "#@}]°..." ne sont pas tolérés...
Code: Tout sélectionner
<?php
preg_match("/^\/([a-z0-9\-_]+)(?:(?:\/([a-z0-9\-_]+))(?:\/([a-z0-9\-_\.]+)+)?)?\/?$/i",$_SERVER['REQUEST_URI'],$url);
?>

cette regexp match les url de cette façon :

http://monsite.free.fr/documentaires/39-45/bataille-atlantique.php

DANS LE FICHIER documentaires.php

$url[1]=documentaires
$url[2]=39-45
$url[3]=bataille-atlantique.php

cette regexp match uniquement les caracteres suivants A-Z (alphabet insensible a la casse) - (tirets) _ (tirets bas) . (points) 0-9 (chiffres) dans les adresses de profondeur 1 , 2 ou 3... Les points ne sont pas autorisés dans les noms des dossiers. En cas d'adresse invalide , $url[1] , $url[2] et $url[3] n'existent pas.

faites un :
Code: Tout sélectionner
<?
print_r($url);
?>

pour tester...

stef13100
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 4
Inscription: 20 Déc 2010

Re: [Résolu] - php - URL Rewriting chez free (free.fr)

Message le Lun Jan 03, 2011 15:27

excuser moi une question a la fin du code la redirection est elle:

header("HTTP/1.0 200 OK"); // Faut-il un 200 ou un 301 ???
header('Location: '.$newurl);

michel.leonard
WRInaute discret
WRInaute discret
 
Messages: 184
Inscription: 1 Juin 2010

Re: [Résolu] - php - URL Rewriting chez free (free.fr)

Message le Mar Jan 04, 2011 17:42

Code: Tout sélectionner
header("HTTP/1.1 301 Moved Permanently");
header ('location: http:/ton-url.com);
header("Connection: close");

michel.leonard
WRInaute discret
WRInaute discret
 
Messages: 184
Inscription: 1 Juin 2010

Re: [Résolu] - php - URL Rewriting chez free (free.fr)

Message le Mar Jan 04, 2011 17:43

mais il n'y a pas de redirection a la fin du code, c'est normalement a toi d'inclure les bons fichiers en fonction du parametre $url... tu comprends ? les dossiers et les pages sont virtuels...

stef13100
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 4
Inscription: 20 Déc 2010

Re: [Résolu] - php - URL Rewriting chez free (free.fr)

Message le Mer Jan 05, 2011 13:48

oui merci j'ai compris mais j'ai mis la solution car les tutos font penser que l'on peux faire

header("HTTP/1.1 301 Moved Permanently");
header ('location: http:/ton-url.com);

mais le serveur free renvoi un 302 qui n'est pas référencer

michel.leonard
WRInaute discret
WRInaute discret
 
Messages: 184
Inscription: 1 Juin 2010

Re: [Résolu] - php - URL Rewriting chez free (free.fr)

Message le Dim Mar 20, 2011 20:10

effectivement, on pourrais faire une 301, mais ca provoquerai une boucle de redirection... grace a l'expression rationelle, tu es déja dans la page que tu veux rediriger; bien sur chez free, le dossier virtuel est obligatoire pour cet url rw...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl

  • Analyse de popularité
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Transformer des simples citations de votre site en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités