Réécriture d'URL (URL rewriting)

Bonjour,
J’ai actuellement un site qui fonctionne parfaitement en local. Mais je ne parviens pas à faire fonctionner la réécriture d’URL en ligne.
Mon fichier .htaccess est configuré pour autoriser la réécriture, je dispose également d’un fichier index.php qui gère la redirection vers la route qui est demandée, enfin mon fichier routes.php dans lequel je fais la liaison entre les nouvelles url et les fichiers.
Comment faire fonctionner la réécriture d’URL ?
Merci d’avance !


TRANSLATED BY MOD:

Good morning,
I currently have a site that works perfectly locally. But I can’t get inline URL rewriting to work.
My .htaccess file is configured to authorize rewriting, I also have an index.php file which manages the redirection to the route which is requested, finally my routes.php file in which I make the connection between the new urls and the files.
How to make URL rewriting work?
Thanks in advance !

Bonjour Enigma,

Pourriez-vous s’il vous plaît coller le contenu de votre fichier .htaccess pour inspection ? Merci.

Acclamations!

Hi Enigma,

Would you please paste the contents of your .htaccess file for inspection? Thanks.

Cheers!

3 Likes

Bonjour chiucs123,
Voici le contenu de mon fichier .htaccess :slight_smile:
DirectoryIndex index.php index.html

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

Please note that this is an English-speaking forum, so you must speak in English or at least provide an accurate translation of your content. I’m gonna translate it for you and also add some code formatting:

Sadly I don’t know how to help you if you don’t provide a website URL for me to check… But the only thing I can tell you is to check on your index.php file to see if you have checks for the url GET parameter.

6 Likes

Bonjour Enigma,

Je vois ce que vous avez essayé de réaliser, mais il y a un système de sécurité qui vous gêne et vous avez essayé de résoudre ce problème en incluant également ?r=1, seules les requêtes avec r=1 suivraient les règles .htaccess.

Une solution de contournement possible consiste à utiliser la version native de .htaccess à la place tout en ajoutant une fonction dans votre code PHP pour rediriger à nouveau vers la page d’accueil si r=1 existe dans l’URL. De cette façon, seule la première requête reçoit 2 redirections tandis que les pages suivantes fonctionneront comme prévu. Le système de sécurité n’applique le r=1 qu’au premier atterrissage. Toute redirection ultérieure conservant l’en-tête du cookie peut exclure le r=1.

Acclamations!

Hi Enigma,

I see what you tried to achieve, but there’s a security system that gets in the way and you attempted to solve that by also including ?r=1, only requests with r=1 would follow the .htaccess rules.

A possible workaround is to use the native version of .htaccess instead while adding a function in your PHP code to redirect once more to the homepage if r=1 exists in the URL. This way, only the first request gets 2 redirects while subsequent pages will work as expected. The security system only applies the r=1 upon first landing. Any subsequent redirects keeping the cookie header may exclude the r=1.

Cheers!

1 Like

Thanks for your answers, and sorry for the inconvenience, I’m finally moving to another host.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.