URL rewriting sans htaccess

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : URL rewriting sans htaccess

Re: URL rewriting sans htaccess

par zeus » 21 sept. 2010, 11:31

Pour en revenir au soucis de base, je pense qu'il faut que tu commences par essayer de comprendre comment marche Apache et PHP.

Quand tu appelles une ressources (= une url), Apache regarde s'il trouve un fichier PHP a cet endroit. S'il le trouve, il demande à PHP de le parser (Note : je met de côté le principe de handler, ça sera pour plus tard)
Si Apache ne trouve pas de fichier, il retourne une erreur 404.

Ensuite, viens par dessus le principe de l'url rewriting, qui consiste à dire à Apache de réécrire l'url pour atteindre un fichier, même si la ressource n'existe pas.
Tout serveur Apache implémente une règle de réécriture simple : celle du index.php
Quand tu appelles l'url "http://www.exemple.fr/dossier/", Apache réécrit cette route en "http://www.exemple.fr/dossier/index.php", et c'est ça qui fait que ton index.php est exécuté (bon, en vrai, il cherche d'abord en index.html, puis un index.php s'il ne le trouve pas)

Bref, tout ça pour t'expliquer que ce n'est pas PHP qui redirige de "http://www.exemple.fr/dossier/" vers "http://www.exemple.fr/dossier/index.php" et qu'il n'est pas possible, complètement en PHP, de mettre en place un système de réécriture.

Toutefois, il serait possible de vraiment aller sur "http://www.exemple.fr/dossier/page.php", de faire le traitement nécessaire, puis de rediriger sur "http://www.exemple.fr/dossier/" (donc "http://www.exemple.fr/dossier/index.php") dans lequel script tu devrais gérer le cas du retour (C'est la solution que t'a expliqué stealth35)

Re: URL rewriting sans htaccess

par Cyrano » 20 sept. 2010, 18:50

en passant par la page 404 on peut faire de l'urlrewrinting 'batard'
À condition de pouvoir surcharger la configuration du serveur en matière de redirection, donc dans le cas présent, ça ne pourra pas résoudre le problème.

Re: URL rewriting sans htaccess

par telnes » 20 sept. 2010, 17:53

hello

en passant par la page 404 on peut faire de l'urlrewrinting 'batard'

mais pour le référencement ...????

++

Re: URL rewriting sans htaccess

par Cyrano » 16 sept. 2010, 09:41

Ce genre d'url indique le plus souvent une architecture en modèle MVC avec donc des indications spécifiques : mais ce type d'architecture signifie que toutes les requêtes HTTP vers le site passent par un unique fichier index qui est un contrôleur frontal et qui va ensuite déterminer selon le reste de l'url quel contrôleur de page doit être mis en oeuvre pour quelle action avec quels paramètres.

Reprenons ton exemple « http://www.site.com/index.php/test/blabla » : dans une architecture MVC, ça voudrait dire quel le contrôleur frontal va appeler un testCtrl (le contrôleur de la page « test » et l'action « blabla » qui est une méthode de la classe testCtrl, méthode qui va construire la page spécifique.
Pour faire ça, on utilise le plus souvent un ficher .htaccess à la racine du site qui va rediriger tous les appels vers la page index.php situé à la racine du site. Ce contrôleur frontal va faire appel le plus souvent à une classe de routage qui va décortiquer les éléments de l'url pour déterminer quelle page est demandée en précisant l contrôleur, l'action et les paramètres s'il y en a.

Dans ton cas, il y a probablement le problème suivant : la configuration du serveur interdit la surcharge. Si tu regarde un fichier httpd.conf, tu pourras y trouver ce genre de choses :

Code : Tout sélectionner

<Directory "/var/www"> # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All </Directory>
Cette directive AllowOverride indique si on eut justement utiliser un fichier .htaccess : ici la valeur est « All » et donc l'utilisation d'une surcharge est permise. Si la valeur avait été « None » alors l'utilisation d'un .htaccess serait interdite.

Je te suggère une lecture de la documentation Apache sur le sujet.

Re: URL rewriting sans htaccess

par AoSiX » 16 sept. 2010, 07:57

Aloa,

Comment sont construites les url tel que :

http://www.site.com/index.php/test/blabla

ça utilise le rewriting du serveur web ? Si oui, je vois pas pourquoi les gens laissent le index.php...

Re: URL rewriting sans htaccess

par Cyrano » 15 sept. 2010, 22:01

Les htaccess ne sont pas supportés par le serveur web
Ça n'a pas de sens de dire ça : le serveur les supporte fort bien. Ce qui est possible en revanche, c'est que le httpd.conf bloque l'usage des fichiers .htaccess. Si tu n'as pas la main sur ce dernier, alors ce sera mission impossible puisque l'url est traduite par le serveur qui fait alors appel à l'interpréteur PHP en pointant sur tel ou tel fichier de code pour construire la page demandée. Si le serveur ne permet pas l'urlRewriting, tu ne pourras pas l'implémenter, c'est aussi simple que ça.

Re: URL rewriting sans htaccess

par xTG » 15 sept. 2010, 20:42

Tu peux faire de l'url rewriting via le http.conf
Mais vu le peu d'informations que tu sembles posséder on pourrait donc se demander si tu y as accès.

Re: URL rewriting sans htaccess

par Fantomstein » 15 sept. 2010, 20:01

Je n'ai aucune idée !
C'est un boulot que je dois faire !
Alors t'as pas une solution pour moi, merci

Re: URL rewriting sans htaccess

par stealth35 » 15 sept. 2010, 19:41

et comment faire alors ?
c'est pour ca que je te demande c'est quel serveur

Re: URL rewriting sans htaccess

par Fantomstein » 15 sept. 2010, 19:38

et comment faire alors ?

Re: URL rewriting sans htaccess

par stealth35 » 15 sept. 2010, 19:36

Si tu ne peux pas ou tu ne veux pas m'aider, t'es pas obligé de poster, mon serveur web ne supporte pas les htaccess ! et je cherche une solution PHP pure !

merci quand même
le htaccess et le rewriting c'est 2 choses différentes...

Re: URL rewriting sans htaccess

par Fantomstein » 15 sept. 2010, 19:33

Si tu ne peux pas ou tu ne veux pas m'aider, t'es pas obligé de poster, mon serveur web ne supporte pas les htaccess ! et je cherche une solution PHP pure !

merci quand même

Re: URL rewriting sans htaccess

par stealth35 » 15 sept. 2010, 19:20

Peu importe quel serveur, je suis à la quête d'une solution, est ce que tu peux m'aider ?
merci
non pas "Peu importe quel serveur" quasiment tout les serveurs peuvent faire du rewriting sans bidouille

Re: URL rewriting sans htaccess

par Fantomstein » 15 sept. 2010, 19:19

Peu importe quel serveur, je suis à la quête d'une solution, est ce que tu peux m'aider ?
merci

Re: URL rewriting sans htaccess

par stealth35 » 15 sept. 2010, 19:07

Les htaccess ne sont pas supportés par le serveur web
ah bon c'est quel serveur ?