Aller au contenu

Sujets conseillés

Posté

Salut à vous,

Je suis recemment tombé sur cet article que je trouve très instructif: http://www.neokraft.net/articles/php-template/

J'ai réussi à mettre ca en place sur mon site est c'est très interessant. Pour ceux qui ne veulent pas lire, cela se base sur un système de Handler.

Il se trouve que je souhaite faire de l'URL Rewriting sur mon site, et je rencontre un problème sérieux: mon Handler deroute mes règles de Rewriting, tout comme d'ailleurs ma page d'erreur 404!

Mon handler agit sur les fichiers .php, et si je tape une-page-qui-n-existe-pas.php, alors, ma 404 ne s'affiche pas... mais une erreur dans le code PHP chargé de charger la page (la directive Action du Handler).

Existe-t-il un moyen de rendre la priorité à mes règles de Redirection?

merci de votre aide!

Posté

Salut Julien,

Peux-tu nous copier ton fichier .htaccess ?

J'aimerais visualiser dans quel ordre tu as mis les différentes directives.

Dan

Posté

Salut,

Voila le contenu de mon httpd.conf, parce que je n'ai pas mis de .htaccess... je suis pas encore en prod, je m'occuperai de repartir cela plus tard!


# Virtual Host for Jobetudiant6
<VirtualHost *:8080>
   DocumentRoot "/Users/julien/Sites/Jobetudiant6"
   ErrorDocument 404 /404.php
   
   <Directory "/Users/julien/Sites/Jobetudiant6/">
       Options FollowSymLinks
       AllowOverride All        
       AddHandler prefetch .php
       Action prefetch /scripts/prefetch.php
   </Directory>
   <Directory "/Users/julien/Sites/Jobetudiant6/scripts">
       RemoveHandler .php
   </Directory>
   <Directory "/Users/julien/Sites/Jobetudiant6/admin">
       RemoveHandler .php
   </Directory>      
</VirtualHost>

Bon, sinon, j'ai reussi à me demerder pour faire un truc qui tourne, ce n'est pas très très joli, mais je le poste la dessous... si quelqu'un à des conseils, qu'il les donne!



<?php
function prefetchURL()
{  
 #parse l'URL resultante
 $url= parse_url($_SERVER['QUERY_STRING']);
 $document=$url['path'];
 
 #nettoyage du tableau $_GET et $_REQUEST
 $to_clean = array_keys($_GET);
 unset($_GET[$to_clean[0]]);
 unset($_REQUEST[$to_clean[0]]);

 #on repeuple le tableau $_GET et $_REQUEST
 if(!empty($url['query']))
 {
  parse_str($url['query'],$query);
  foreach($query as $k => $v)
  {
   $_GET[$k]=$v;
   if (!isset($_REQUEST[$k]))
   {
    $_REQUEST[$k]=$v;
   }
  }
 }
 return $_SERVER['PATH_TRANSLATED'];
}

# Here starts the executed code!
$requestedFile=prefetchURL();
# We must eventually redirect the user!
ob_start();
if(preg_match('|offre-job-etudiant-([0-9]*?)-(.+)\.php|ms',$requestedFile,$matches))
{
 $offre_id=$matches[1];
   echo "totot".$offre_id;
 require($_SERVER['DOCUMENT_ROOT']."/etudiant/offre-job-etudiant.php");
}
else if(!file_exists($requestedFile))
{
 require($_SERVER['DOCUMENT_ROOT']."/404.php");
}
else
{
 require prefetchURL();
}
$file=ob_get_contents();

ob_end_clean();

if (preg_match('|<title>(.*?)</title>.*<body>(.*?)'.
'</body>|ms', $file, $matches))
{
 $titre_page=$matches[1];
 $contenu_page=$matches[2];

 require dirname(__FILE__).'/../modeles/modele.php';
}
exit;
?>

Voilà le fichier modele.php


<?php
include("../scripts/fonctions.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <title>Jobetudiant.net: <?php echo $titre_page; ?></title>
 <link href="/styles/jobetudiant-etudiant.css" rel="stylesheet" type="text/css" />
 <script src="/scripts/jobetudiant.js" type="text/javascript" />
</head>
<body onload="initialize();">
 <div id="conteneur">
  <div id="banniere">
   <div id="logo">
   
   </div>
   <div class="barre-navigation">
    <?php displayNavBar($requestedFile); ?>
   </div>
  </div>
  <div id="gauche">
    <div id="connexion">
     Bienvenue Julien GENESTOUX.<br />
     Votre e-mail: julien_AT_jobetudiant.net.<br />
     <a href="/questions-frequentes.php?alerte-mail">Alerte mail</a>: oui.<br />
     <a href="/etudiant/profil.php">Votre profil</a>.<br />
     <a href="/etudiant/etudiant.php?deconexion=true">Vous deconnecter</a>.<br />
     <a href="/etudiant/etudiant.php?suppression=true">Supprimer votre compte</a>.
    </div>
    <div id="tips">
    Dernières annonces publiées:
     <ul id="dernieres-annonces">
      <li><a href="/etudiant/offre-job-etudiant-11250-baby-Sitter.php">Baby Sitter Lyon</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11251-vendeur.php">Vendeur livres sur les plages</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11252-telemarketing.php">Telemarketing</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11253-Secretariat.php">Secretaire médicale</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11254-manutentionnaire.php">Preparateur de commande</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11255-cueilleur.php">Ramassage des peches</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11256-stagiaire.php">Stage informatique</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11257-Autre.php">Pisciniste pour lété</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11258-repetiteur.php">Prof d'Anglais</a></li>
      <li><a href="/etudiant/offre-job-etudiant-11259-animateur.php">Encadrement colo</a></li>
     </ul>
    </div>
  </div>
  <div id="droite">
  <div id="recherche">
    Rechercher un job:<br />
    <form action="etudiant/jobs-etudiants-trouves.php" method="post">
     <input type="text" value="Job étudiant"><br />
     <input type="submit" value="Rechercher">
    </form>
    <a href="/etudiant/recherche-job-etudiant.php">Recherche Avancée</a>.
   </div>
   <ul id="menu">
    <li id="menuItem-etudiants" onmouseover="showEtudiantsSubMenu();" onmouseout="hideEtudiantsSubMenu();"><a href="/etudiant/etudiant.php">Étudiants</a></li>
      <ul id="sous-menu-etudiants" onmouseover="showEtudiantsSubMenu()" onmouseout="hideEtudiantsSubMenu()">
       <li id="menuItem-etudiants-profil"><a href="/etudiant/profil.php">Votre Profil</a></li>
       <li id="menuItem-etudiants-recherche"><a href="/etudiant/recherche-job-etudiant.php">Recherche avancée</a></li>
       <li id="menuItem-etudiants-dossier"><a href="/etudiant/dossiers-etudiants.php">Dossiers étudiants</a></li>
       </ul>
    <li id="menuItem-recruteurs" onmouseover="showRecruteursSubMenu();" onmouseout="hideRecruteursSubMenu();"><a href="/recruteur/recruteur.php">Recruteurs</a></li>
     <ul id="sous-menu-recruteurs" onmouseover="showRecruteursSubMenu();" onmouseout="hideRecruteursSubMenu();">
      <li id="menuItem-recruteurs-profil"><a href="/recruteur/profil.php">Votre Profil</a></li>
      <li id="menuItem-recruteurs-nouvelle-offre"><a href="/recruteur/publication-annonce-job-etudiant.php">Nouvelle Offre</a></li>
     </ul>
    <li id="menuItem-plan"><a href="/plan.php">Plan du Site</a></li>
    <li id="menuItem-questions-frequentes"><a href="/questions-frequentes.php">Questions Fréquentes</a></li>
    <li id="menuItem-contactez-nous"><a href="/contact.php">Contactez-nous</a></li>
    <li id="menuItem-partenaires"><a href="/partenaires.php">Partenaires</a></li>
    <li id="menuItem-a-propos"><a href="/a-propos-de-jobetudiant.php">a Propos</a></li>
   </ul>
  </div>
  <div id="contenu">

    <?php echo $contenu_page; ?>
   
  </div>
  <div class="barre-navigation">
    <?php displayNavBar($requestedFile); ?>
  </div>
  <div id="pied-de-page">
    Nous sommes le <?php afficheDate(); ?> - <a href="http://www.jobetudiant.net">Jobetudiant.net</a> - Toto est le roi! - <a href="http://www.job-d-ete.net"> Job d'été</a> - Demain c'est le weekend.
  </div>  
 </div>
</body>
</html>

et un fichier ou je met juste mes données... sans mise en forme:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 <title>Une offre de job étudiant</title>

</head>
<body>
 <h1>Une offre de fou!</h1>
 Hophophop la mega offre!
 Offre n°: <?php echo $offre_id;?>
</body>
</html>

Je trouve ca autrment plus puissant que des include... Des commentaires sur cette technique (voir lien neocraft)?

En gros, je fais mon rewriting moi-même, dans le handler... enfin, le seul truc, c'est que dans le cas du 404, j'aimerai bien arriver à renvoyer un code 404 dans mon entete HTTP.

Posté
... enfin, le seul truc, c'est que dans le cas du 404, j'aimerai bien arriver à renvoyer un code 404 dans mon entete HTTP.

Tu peux bien mettre un fichier .html ... l'entête est envoyée aussi.

Pas besoin de l'envoyer toi-même, la directive ErrorDocument s'en occupe.

Posté

Heu,

Je suis désolé de dire que je ne comprends pas...

Dans le cas de toto.html(qui n'existe pas), tout se passe bien: 404.php affichée et 404 de code retour!

Par contre, pour toto.php (qui n'existe pas non plus), mon handler(qui agit sur les fichiers .php) reagit avant la directive ErrorDocument, donc, je suis obligé de detecter que le fichier n'existe pas dans le Action du Handler, et, le cas échéant de renvoyer le contenu du fichier 404.php, mais je n'arrive pas à renvoyer le code 404!

Posté
Heu,

Je suis désolé de dire que je ne comprends pas...

Dans le cas de toto.html(qui n'existe pas), tout se passe bien: 404.php affichée et 404 de code retour!

Par contre, pour toto.php (qui n'existe pas non plus), mon handler(qui agit sur les fichiers .php) reagit avant la directive ErrorDocument, donc, je suis obligé de detecter que le fichier n'existe pas dans le Action du Handler, et, le cas échéant de renvoyer le contenu du fichier 404.php, mais je n'arrive pas à renvoyer le code 404!

Ben oui, avec un require($_SERVER['DOCUMENT_ROOT']."/404.php"); tu e renvoies pas la bonne entête.

Il faut envoyer une entête toi-même dans ce cas, avec

header("HTTP/1.0 404 Not Found");

suivi de

header("Location: /404.php");

Posté
header("HTTP/1.0 404 Not Found");

Ok, bien vu, mais, je n'ai pas besoin du second header... j'ai mis le premier juste avant mon require, comme la sortie est bufferisée... ca tourne comme ça.

Merci ton aide!

Ju

  • 2 semaines plus tard...
Posté (modifié)

Bonjour à tous,

je suis un ch'ti nouveau de Webmaster hub... grace à ce post et à Google qui l'a trouvé !

C'est donc du script "Modèle de page avec Apache et PHP" dont il s'agit.

J'ai reussi à le faire fonctionner pour des pages htm, rien à redire, ca fonctionne pas trop mal ! Faut dire que ce systeme est assés génial.

Voilà ma question.

Je ne sais pas si julien à reussi à afficher sa page 404.php pour le fichier toto.php, mais un autre probleme subsiste pour moi.

Si par exemple un internaute entre un url faucé en .htm, je me retrouve avec un message d'erreur comme celui-ci

Warning: main(/home/xxx/public_html//innexistant.htm): failed to open stream: No such file or directory in /home/xxx/public_html/include/prefetch.php on line 32

Warning: main(/home/xxx/public_html//innexistant.htm): failed to open stream: No such file or directory in /home/xxx/public_html/include/prefetch.php on line 32

Fatal error: main(): Failed opening required '/home/xxx/public_html//innexistant.htm' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/xxx/public_html/include/prefetch.php on line 32

J'ai évidement essayé la directive ErrorDocument dans mon .htaccess, mais rien à faire pour avoir la page 404.htm. Comme le disait Julien, l'Handler réagit avant cette directive. J'ai bien pensé mettre une fonction de vérification d'existance de fichier, mais vu mon niveau en php, je ne vois pas où et comme réaliser celà.

Mon fichier prefetch.php est :

<?php
function prefetchURL()
{
   # parse l'url résultante
   $url = parse_url($_SERVER['QUERY_STRING']);
   $document = $url['path'];

   # Nettoyage du tableau $_GET et $_REQUEST
   $to_clean = array_keys($_GET);
   unset($_GET[$to_clean[0]]);
   unset($_REQUEST[$to_clean[0]]);

   # On repeuple le tableau $_GET et $_REQUEST
   if (!empty($url['query']))
   {
       parse_str($url['query'],$query);
       foreach ($query as $k => $v)
       {
           $_GET[$k] = $v;
           if (!isset($_REQUEST[$k])) {
               $_REQUEST[$k] = $v;
           }
       }
   }

   return $_SERVER['DOCUMENT_ROOT'].'/'.$document;
}

ob_start();
require prefetchURL();
$file = ob_get_contents();
ob_end_clean();

if (preg_match('|<title>(.*?)</title>.*<body>(.*?)'.
'</body>|ms',$file,$matches)) {
   $titre_page = $matches[1];
   $contenu_page = $matches[2];

   require dirname(__FILE__).'/model.php';
}

exit;
?>

Et mon .htaccess :

AddHandler prefetch .htm
Action prefetch /include/prefetch.php?
ErrorDocument 404 /404.htm

Ma seconde question, je souhaiterai mettre l'ensemble des fichiers .htm dans un autre répertoire, mais ca ne fonctionne pas. Sur le site neokraft au sujet de ce code, kffir disait, je cite : < ./. il y a aussi le méthode des "alias" a insérer dans le fichier httpd.conf.> Le problème pour moi, c'est que je ne pense pas que mon hébergeur me donne acces à ce fichier, d'ailleur, je ne sais pas ou je pourrais le trouver. Y aurrait il donc une autre solution ?

Voilà !

En tout un grand merci à Dan pour ce board !

Cordialement.

Modifié par Abalone
Posté

Bon, alors, je m'en suis sorti en trichant un peu, mais je pense que ca à de la gueule...

en gros, j'ai mis mes directives apache dans la focntion prefetch... Je teste si le fichier existe, et si il n'existe pas ben, je fais un require 404.php, comme je m'explique plus haut, sans oublier de renvoyer le code 404 pour faire plus propre.

L'avantage de cette méthode, c'est que je fais mon URL rewriting aussi dans cette fonction. L'inconvénient c'est que prefetch.php s'allourdit. Je ne sais pas dans quelle mesure c'est pénalisant pour mon serveur... je verrais cela en exploitation! Mais je pense que cela devrait aller!

Voilà un extrait de mon fichier handler.php (le premier if fait un "rewriting", le secondb teste que le fichier existe, sinon, ben, on sort un /404.php):

if(preg_match('|offre-job-etudiant-([0-9]*?)-(.+)\.php|ms',$requestedFile,$matches))
{
$offre_id=$matches[1];
  echo "totot".$offre_id;
require($_SERVER['DOCUMENT_ROOT']."/etudiant/offre-job-etudiant.php");
}
else if(!file_exists($requestedFile))
{
require($_SERVER['DOCUMENT_ROOT']."/404.php");

Pour ta seconde question, bien, je pense que tous les fichier .htm qui sont dans des repertoire en dessous de celui ou tu define le handler auront ce handler (sauf si tu as explicite le contraire: "RemoveHandler")

Voili,

Ju

Posté

Merci Julien pour ta réponse.

Par contre, je suis sur ton reply depuis que tu as répondu, mais j'ai tourjours rien capter :fou:

En fait il me manque pas mal de notion php pour percuter avec si peu de détails.

Si je comprend bien tu as renomé prefetch.php en handler.php, non ?

Ensuite selon ce que j'ai compris, j'ai voulu essayer juste le teste d'existance fichier et je m'y suis pris comme ceci que j'ai modifié du prefetch.php :

$requestedFile = prefetchURL();
ob_start();
if(!file_exists($requestedFile))
{
require($_SERVER['DOCUMENT_ROOT']."/404.php");
}
else

{
require prefetchURL();
}

évidement l'erreur :

Fatal error: Call to undefined function: prefetchurl() in /home/vbullet/public_html/edition/include/prefetch.php on line 44

J'ai dù m'arracher le peu de cheuveux qu'il me reste à comprendre, mais en vain.

Tu pourrais m'éclairer un peu plus s'il te plait ? Merci.

Posté

Je suis désolé de ne pas être clair...

Enfin, je n'ai pas renomé de fichier.

J'ai donc un fichier prefetch.php qui est appelé à chaque fois qu'un fichier .php est appelé sur ton serveur(c'est ce que tu as du definir dans http.conf->AddHandler, Action).

Dans ce fichier, la fonction prefecthURL() permet de recuperer le chemin absolu sur ton disuqe dur du fichier appelé par l'URL. (en gros, si tu appelle /index.php, ca te ressort /home/web/site1/index.php). Tout en conservant les variables GET, POST, ... etc

Ensuite, la variable $requestedFile garde donc cette adresse du fichier et tu peux commencer à travailler dessus: verifier que le fichier existe, sinon retourner une erreur 404... etc.

Ton code à pourtant l'air bon, si dessous, à ceci près que au lieu de "require prefetchURL();", tu peux mettre "require $requestedFile".

Il faut cependant t'assurer que la fonction prefecthURL() est bien definie. Pour cela, je te suggère de la placer juste au dessus de "$requestedFile = prefetchURL();"

J'avais modifier un peu prefectchURL car elle ne marchait pas chez moi...

Je te mets donc le code qui devrait marcher chez toi:

<?php

function prefetchURL()
{  
 #parse l'URL resultante
 $url= parse_url($_SERVER['QUERY_STRING']);
 $document=$url['path'];
 
 #nettoyage du tableau $_GET et $_REQUEST
 $to_clean = array_keys($_GET);
 //unset($_GET[$to_clean[0]]);
 //unset($_REQUEST[$to_clean[0]]);

 #on repeuple le tableau $_GET et $_REQUEST
 if(!empty($url['query']))
 {
  parse_str($url['query'],$query);
  foreach($query as $k => $v)
  {
   $_GET[$k]=$v;
   if (!isset($_REQUEST[$k]))
   {
    $_REQUEST[$k]=$v;
   }
  }
 }
 return $_SERVER['PATH_TRANSLATED'];
}

// Ici commence le code executé lorsque tu appelles un fichier .php sur ton serveur Web


$requestedFile = prefetchURL(); // On recupere le chemin local du fichier

ob_start(); // On bufferise

if(!file_exists($requestedFile)) //  Si le fichier.php est introuvable
{
      require($_SERVER['DOCUMENT_ROOT']."/404.php"); // on recupere le contenu de /404.php dans le buffer
}
else
{
     require $requestedFile; // Sinon on recupere le contenu du bon fichier
}

$contenu= ob_get_contents(); // on prend le contenu du buffer
ob_end_clean(); // on vide le buffer (cad on commence à renvoyer les données chez le client)

if (preg_match('|<title>(.*?)</title>.*<body>(.*?)'.'</body>|ms', $file, $matches)) // on recupere le titre et le contenu de la page bufferisee
{
   $titre_page=$matches[1]; // on assigne les variables qui seront affichees dans ton model.php
   $contenu_page=$matches[2];

   require dirname(__FILE__).'/../modeles/model.php'; // enfin, on affiche le contenu du modele, sachant que les lignes echo $titre_page et $contenu_page afficheront les donnees extraites de $contenu
}
?>

Voilà, j'espère que ca va t'aider... je pense que cela devrait aller maintenant! cela dit, je debute comme toi (avec 2 semaines d'avance), donc, je ne garantis rien du tout!

Julien

Posté

:shake: un grand merci Julien !

Tu as su te mettre à la portée de mes lacunes... ca c'est une grande qualité !

Voici le contenu de mon prefetch.php

<?php
function prefetchURL()
{
  # parse l'url résultante
  $url = parse_url($_SERVER['QUERY_STRING']);
  $document = $url['path'];

  # Nettoyage du tableau $_GET et $_REQUEST
  $to_clean = array_keys($_GET);
  unset($_GET[$to_clean[0]]);
  unset($_REQUEST[$to_clean[0]]);

  # On repeuple le tableau $_GET et $_REQUEST
  if (!empty($url['query']))
  {
      parse_str($url['query'],$query);
      foreach ($query as $k => $v)
      {
          $_GET[$k] = $v;
          if (!isset($_REQUEST[$k])) {
              $_REQUEST[$k] = $v;
          }
      }
  }

  return $_SERVER['DOCUMENT_ROOT'].'/'.$document;
}

$requestedFile = prefetchURL();
ob_start();

 if(!file_exists($requestedFile))
 {
 require($_SERVER['DOCUMENT_ROOT']."/404.htm");
 }
 else
 {
 require $requestedFile;
 }

$file = ob_get_contents();
ob_end_clean();

if (preg_match('|<title>(.*?)</title>.*<body>(.*?)'.'</body>|ms', $file, $matches))
{
 $titre_page=$matches[1];
 $contenu_page=$matches[2];
 
 require dirname(__FILE__).'/model.php';
}
?>

Je n'ai pas heu besoin de modifier "function prefetchURL()", apparement ca tourne nickel. Parcontre je pense tu as voulu dire $file et non $contenu, j'ai donc corrigé. Comme il s'agit de fichier htm, j'ai remplacé 404.php par 404.htm. J'ai aussi corrigé le path de l'emplacement de model.php.

L'erreur 404 fonctionne impécable dans mon modele ! Si toutfois tu vois une erreur de ma part, n'hésite pas de me le signaler.

Encore bravo pour cette modif de ce très bon script.

D'autre part, penses-tu que l'utilisation de ce systeme pourrait créer une faille et permettre des risques d'intrusions de personnes malveillantes ?

Je ne sais pas ce que tu en penses, mais ca serait sympa de poster ta modif sur neokraft.net, dans l'article qui traite de ce script, pour ceux qui ne connaissent pas webmaster-hub.com ;)

Abalone

Posté (modifié)

Merci de tes compliments! (j'espère les mériter java script:emoticon(':blush:'))

[edit]Aidez moi à reactiver le BBCode, je ne touve plus... snif[/edit]

Ton script à l'air nickel...

Pour ce qui est des éventuelles failles... ben, je n'en sais trop rien, a priori, je dirais que non, qu'il n'y a rien qui puisse afaiblir le système au niveau de ce scrit PHP, cela dit, je ne suis vraiment pas expert en sécurité, et je ne sais pas si l'utilisation des Handler dans Apache peut cacher des failles.

Enfin, je pense qu'il serait une bonne idée de poster les modifs, tout en ajoutant un lien vers cette discussion, pour centraliser un peu si quelqu'un rencontre d'autres problèmes. Je te laisse le soin (je rends à César ce qui lui appartient, mais aussi par paresse!)

J'ajoute aussi que cette technique peut etre rudement efficace si on souhaite avoir diffrents modèles de pages... il suffirait de detecter le modèle de pages que l'on veut presenter en fonction de cookies, de la provenance, de l'UA... etc...

Voili voulou!

Ju

Modifié par julien51
Posté

Salut Julien,

Tu n'aurais pas par hasard désactivé le JavaScript ? ;)

Dan

  • 3 semaines plus tard...
Posté

Bonjour à tous

J'aurais voulu savoir si ce systeme avec AddHandler fonctionnait si le fichier n'existe pas?

par exemple j'ai un lien qui pointe vers monaction.do

avec dans mon .htaccess :

Action phpaction /traitaction.php

AddHandler phpaction .do

lorsque le fichier monaction.do exite vraiment cela fonctionne, mais quand il n'existe pas j'ai une erreur 404.

J'ai eu l'occasion d'utilise le mod_rewite qui fonctionnait très bien chez moi mais je n'ai pas la possibilité de l'activer sur le serveur. Donc je cherche une alternative.

En gros je voudais que tous les appels avec l'extention .do soient traité par un script php mais sans que le fichier .do existe reellement.

Si vous avez une solution.

Gwenn

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...