J’essaie de supprimer l’extension php et de cacher les sous-répertoires en utilisant le fichier .htaccess dans mon domaine. Cependant, je n’ai pas beaucoup de connaissances en regex et je suis vraiment coincé ici. J’apprécierais vraiment si quelqu’un pouvait aider avec ça!
Ce que j’essaie de réaliser, c’est:
www.example.com/index.php à www.example.com/index
www.example.com/assets/php/company.php à www.example.com/company
Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteRule ^assets/php/(.*)$ /$1 [L,NC,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php [NC,L] #To externally redirect /dir/foo.php to /dir/foo RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1 [R,L,NC]
Actuellement, je peux supprimer l’extension .php de l’URL et accéder à http://www.example.com/company, mais elle affiche une erreur 404 introuvable. Je crois que je manque une ligne RewriteCond, mais je ne sais pas comment l’écrire. Ou ai-je besoin d’un autre fichier htaccess dans / assets / php /?
Sera vraiment apprécier si quelqu’un pourrait aider avec cela! Néanmoins, merci pour la lecture.
À votre santé,
TY
Vous pouvez avoir vos règles comme celle-ci dans root .htaccess:
Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} /assets/php/([^.]+)\.php [NC] RewriteRule ^ /%1 [L,NC,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/assets/php/$1\.php -f [NC] RewriteRule ^([^.]+?)/?$ assets/php/$1.php [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] RewriteRule ^([^.]+?)/?$ $1.php [NC,L]
Utilisez ceci
RewriteEngine on RewriteBase / #enforce www subdomain RewriteCond %{HTTP_HOST} !^$ RewriteCond %{HTTP_HOST} ^sitename.com [NC] RewriteCond %{HTTPS}s ^on(s)| RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] #forward all requests, except new/admin, to the 'new' directory without the user's awareness RewriteRule new/admin - [S=2] RewriteRule ^$ new/ [L] RewriteRule (.*) new/$1 [L]