Bonjour à toutes et à tous,

Je suis en train de tenter de réaliser un réseau social sur un thème bien particulier.
Cependant j'ai quelques soucis, et je n'arrive pas à les résoudre....

Une fois connecté on arrive sur l'équivalent du "Mur" de facebook.
Si l'on décide d'aller sur son profil, l'url ressemble à index.php?p=profil&profil=loginenquestion , en sachant que la page admet des droits spéciaux (changer la photo de profil, bannière, etc... seulement si le login du connecté stocké en cookie est égal au login demandé dans l'url)

Bref, la n'est pas la question...

Ma question est la suivante :

Est-ce possible (grâce à l'url rewriting) de passer de:

http://site.fr/index.php?p=profil&profil=loginenquestion
à
http://site.fr/loginenquestion ?

J'ai regardé plusieurs tutoriels pour essayer de comprendre l'urlrewritng mais la je sèche :/

Merci d'avance !

8 réponses


Kboirel
Auteur

Personne :/ ?

Bonjour,

RewriteEngine On
RewriteRule ^([a-z0-9]+)$ index.php?p=profil&profil=$1 [L]

Donneras : mon_site.com/mon_pseudo

Chez certain hébergeur il faut un RewriteBase / donc :

RewriteEngine On
RewriteBase /
RewriteRule ^([a-z0-9]+)$ index.php?p=profil&profil=$1 [L]

Cordialement.

Kboirel
Auteur

Merci beaucoup pour cette réponse mais j'ai quelques soucis encore ....

J'ai réalisé le système pour la pagination globale:

RewriteEngine on
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L]

Si je rajoute la ligne que tu ma gentiment fais part, il y'a un problème de concordance ...

Si je laisse seulement :

RewriteRule ^([a-z0-9]+)$ index.php?p=profil&profil=$1 [L]

Cela marche bien pour le profil mais pas pour le reste des pages, et inversement ....

Je pense que pour palier le problème, il faudrait réussir à transformer ndex.php?p=profil&profil=login en:
profil/login ou encore mieux login/profil

Cependant quand j'essaye de réaliser cette manipulation il y a un problème: le login est cehrché en tant que page, et pointe donc vers ma page 404 étant donné qu'elle n'existe pas ...

si je cherche monsite/profil je suis redirigé vers ma page 404
si je cherche monsite/profil/login, j'ai une boucle de redirection infinie

Savez-vous pourquoi ?

(En faite ce que je n'arrive pas à faire, c'est un système d'étage .. du type:
monsite/page
monsite/page/login
monsite/photo/login/id )

Merci d'avance ...

Bonjour, alors voilà pour vous

RewriteEngine on

#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?p=$1 [QSA,L]

Tout serras envoyez par / et vous recevrez un résultat
{/profil/machin}
{/profil}
{page_1}... Pour cela il vous faudra alors créer un "parse d'url" de $_SERVER'PATH_INFO'], où faire un MVC Complet qui vous simplifieras un lourd travail

Cordialement.

Kboirel
Auteur

Encore merci !

C'est un peu ce que j'avais essayé de faire ...
Cependant si je laisse

#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f

en commentaire, le site ne marche ps dans la globalité, tout part en 404 ... même l'index.php
.

Si je l'enlève (donc si j'active les rewritCond), la page profil/login amène une boucle de redirection .. maisl e reste du site semble fonctionner, les pages /fiche /paramètres etc..

Bonjour, je pourrez t'aider mais sur le forum le message serrez trop long, hésitez pas à me contacter par e-mail : xen0ris@outlook.fr.

Tenter un double .htaccess

Créer un dossier à la racine nommer public_html / webroot
et à la racine un .htaccess

RewriteEngine On
RewriteRule (.*) public_html/$1 [L]

dans le dossier public_html déplacer tout le contenu qu'il y avait à la racine et créer un .htaccess dans ce dossier :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php/$1 [L]

à l'index de votre site dans public_html faite un parse d'url pour ainsi avoir un site "dynamique" pour allez plus loin un MVC pourrez être mis en place.

Kboirel
Auteur

Merci beaucoup pour vos réponses !

Est-ce que vous pensez qu'un MVC est plus ou moins obligatoire pour un projet tel que la création d'un réseau social ?

PS: je vous ai envoyé un mail :)

Bonjour, oui obligatoire pour de gros projet comme celui ci.

Cordialement :)