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]
15
demandé sur Eric Leschinski 2012-04-05 15:50:08

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]
38
répondu anubhava 2012-04-05 15:32:22

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!

4
répondu starkeen 2016-01-29 13:11:04
<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.

2
répondu TRiG 2014-03-15 11:25:58

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:

comment se cacher .extension php .htaccess

0
répondu Wes Crow 2017-05-23 12:17:39