.htacces dans un site

Fermé
janyduchemin - 29 oct. 2021 à 23:26
 janyduchemin - 2 nov. 2021 à 13:51
Salut,
Je voudrais mettre en place l'url rewriting dans mon site (il tourne encore local) afin d'enlever les extensions php dans les liens. Les liens n'ont pas de variables (Ex: 127.0.0.1/monsite/inscription.php). En mettant en ligne je voudrais avoir une truc du genre: www.monsite/inscription.html par exemple
Merci!

3 réponses

Kivin2003 Messages postés 519 Date d'inscription dimanche 26 août 2018 Statut Contributeur Dernière intervention 13 novembre 2023 188
1 nov. 2021 à 11:15
Hello,

Essaie ceci :

RewriteEngine on  
RewriteBase /

RewriteCond %{THE_REQUEST} (.*)\.php
RewriteRule ^(.*)\.php $1.html [R=301,L]

RewriteCond %{THE_REQUEST} (.*)\.html
RewriteRule ^(.*)\.html $1.php [L]

3
janyduchemin
1 nov. 2021 à 21:44
Bsr,
J'ai essaye le code reçu de vous, les urls changent mais une erreur s'affiche (Not Found

The requested URL /association.html was not found on this server.)
J'essayais de lancer la page association.php

Que faut-il faire dans ce cas?
Merci!
0
Kivin2003 Messages postés 519 Date d'inscription dimanche 26 août 2018 Statut Contributeur Dernière intervention 13 novembre 2023 188
2 nov. 2021 à 10:52
Hello,

Est-ce que la page doit forcément avoir une extension ? On pourrait envisager quelque chose de plus simple et de plus SEO-friendly soit retirer le .php et donc ton site donnerait tonsite.com/association/ au lieu de tonsite.com/association.php

Dans ce cas :

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

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


Et si cela ne fonctionne pas, on peut tenter la boucle en externe :

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
1
janyduchemin
2 nov. 2021 à 13:51
Salut,
Merci pour vos réponses, j'ai essayer ces deux options mais seul la deuxième fonctionne (Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L])
les urls s'affichent sans extension cependant, le serveur ne trouve pas la page appellée (un message d'erreur 404 s'affiche)

Not Found

The requested URL /ndameyong/association was not found on this server.

Je ne sais donc si c'est le fait d'être en local qui pose problème
J'espère avoir d'autres explications merci d'avance!
0