Essayer de créer des URL propres mais en obtenant des erreurs

J’essaie de créer une URL de beauté à partir de htaccess c’est mon code

AddDefaultCharset UTF-8 RewriteEngine on RewriteBase / RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP RewriteRule (.*)\.php$ $1 [R=301] RewriteCond %{REQUEST_FILENAME}.php -f RewriteCond %{REQUEST_URI} !/$ RewriteRule (.*) $1\.php [L] RewriteRule (.*)/index$ $1/ [R=301] RewriteEngine on RewriteRule ^([a-zA-Z0-9_]+)$ /$1/ [R] RewriteRule ^([a-zA-Z0-9_]+)/$ /user.php?username=$1 

Je veux afficher des données utilisateur comme celle-ci, mais le problème est que lorsque j’exécute un autre fichier tel que domain.com/contactus, cela redirige vers user.php? Username = contactus Toujours sur cette expression [a-zA-Z0-9_] .) Dot car il y a des noms d’utilisateurs comme john.dyer à est cette expression correcte – [a-zA-Z0-9_.]

c’est mon user.php

  

Désolé je suis très nouveau à cela .. J’apprends ces choses alors s’il vous plaît dites-moi si il existe une meilleure façon de le faire. Merci

Vous avez pas mal de problèmes, essayez ce code modifié:

 RewriteEngine On ## If the request is for a valid directory RewriteCond %{REQUEST_FILENAME} -d [OR] ## If the request is for a valid file RewriteCond %{REQUEST_FILENAME} -f [OR] ## If the request is for a valid link RewriteCond %{REQUEST_FILENAME} -l ## don't do anything RewriteRule ^ - [L] ## hide .php extension # To externally redirect /dir/foo.php to /dir/foo RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s/+(.+?)\.php[\s?] [NC] RewriteRule ^ /%1 [R=301,L,NE] # To internally forward /dir/foo to /dir/foo.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.+?)/?$ /$1.php [L] # remove index.php RewriteCond %{THE_REQUEST} /index\.php [NC] RewriteRule ^(.*?)index\.php$ /$1 [L,R=302,NC,NE] RewriteRule ^(.+?)/?$ /user.php?username=$1 [L,QSA]