Comment puis-je utiliser.htaccess à cacher.php URL extensions?
je veux quelque chose à mettre dans mon fichier .htaccess
qui cachera l'extension de fichier .php
pour mes fichiers php, donc aller à www.example.com/dir/somepage leur montrerait www.example.com/dir/somepage.php.
Est-il une solution pour cela? Mon site utilise HTTPS,si cela importe.
C'est mon .htaccess à l'instant:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/ [R,L]
ErrorDocument 404 /error/404.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) .php [L]
4 réponses
utilisez ce code dans votre .htaccess sous DOCUMENT_ROOT:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f [NC]
RewriteRule ^ %{REQUEST_URI}.php [L]
Supprimer l'extension php
Vous pouvez utiliser le code dans /.htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [NC,L]
avec le code ci-dessus, vous pourrez accéder à /file.php /fichier
Supprimer l'extension html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_FILENAME}.html [NC,L]
Note: la directive' RewriteEngine on ' doit être utilisée une fois en haut par htaccess, donc si vous voulez combiner ces 2 règles il suffit de supprimer la ligne deuxième règle. Vous pouvez également supprimer toutes les autres extensions de votre choix, il suffit de remplacer la .php avec eux sur le code.
Heureux htaccessing!
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f # if the requested URL is not a file that exists
RewriteCond %{REQUEST_FILENAME} !-d # and it isn't a directory that exists either
RewriteCond %{REQUEST_FILENAME}\.php -f # but when you put ".php" on the end it is a file that exists
RewriteRule ^(.+)$ \.php [QSA] # then serve that file (maintaining the query string)
</IfModule>
Curieusement, ce code m'a donné des erreurs HTTP 500 quand j'ai essayé dans XAMPP sous Windows. Suppression des commentaires corrigé. Il en a été de même pour le déplacement des commentaires de façon à ce qu'ils soient sur leurs propres lignes, plutôt que sur les mêmes lignes que les instructions.
essayez ceci:
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://example.com/folder/ [R=301,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/ [R=301,L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ .php [L]Try:
référence: