Modifier l'url affiché dans la barre d'adresse

Bonjour à toutes et à tous,

J'ai fichier nommé download.php. Il prend un paramètre, par exemple ?id=123.
J'aimerai que soit affiché dans la barre d'adresse l'url suivante : download.html (sans paramètre, qu'il soit présent ou non).

Après avoir lu de nombreux tutoriels, je coince complètement. Pourtant, le problème me parait simple.

Je souhaite donc masquer l'existence du fichier download.php.

Mon fichier .htaccess est le suivant :

RewriteBase /

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^download.php$ download.html [L]


Résultat, si download.html n'existe pas, j'ai une erreur "Not found".
S'il existe, le contenu de download.html est affiché (un simple "Ok"), alors que je veux que ce soit celui de download.php qui soit affiché. De plus, l'url dans la barre d'adresse est download.php?id=123 (et non, download.html comme souhaité).

D'avance, merci.

1 réponse

  1. Essaie:
    RewriteRule ^download.html$  download.php  [L]
    RewriteRule ^([0-9]+)/download.html$  download.php?id=$1  [L]
    

    C'est juste que tu as inversé les données ;)
    0
    1. J'ai du mal m'expliquer (ou alors, je ne comprends vraiment rien à la réécriture d'url, c'est possible aussi). Je veux que download.php devienne download.html côté client ;)
      0
    2. @totoyo47Oui, je sais. Essaie le code et tiens moi au courant.
      Ainsi, au lieu que tu pointes les gens vers download.php?id=1, tu tapes 1/download.html
      0
    3. Je tombe sur une "Internal Server Error"
      0
    4. Lis cette page à partir de «Des règles plus utiles.» : https://contrib.spip.net/La-reecriture-des-URL-a-la-volee
      Ça te renseigne sur la réécriture.
      Et si tu utilises Wamp, assure toi d'avoir activer le module "rewrite" dans le sous-menu de la conf d'apache.
      0
    5. Je n'ai pas trouvé la solution à mon problème.
      Cependant, ton lien m'a permis de mieux comprendre le fonctionnement de la réécriture d'urls, et j'ai pu améliorer un autre aspect de mon site.

      Je sais qu'en javascript, je peux changer l'url dans la barre d'adresse. Mais c'est du javascript, et je voudrais que cela se passe côté serveur. Peut-être en PHP ?
      0