comment cacher .php de la barre d'adresse
-
27-10-2019 - |
Question
J'utilise PHP pour les applications Web de construction, mais je veux que mes pages web sans extension .php dans la barre d'adresse du navigateur. Pour eample http://www.example.com/index.php
montre comme http://www.example.com/index
dans la barre d'adresse du navigateur.
Comment puis-je faire?
La solution
Mettez cela dans un fichier nommé dans votre .htaccess
WWW-root:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([A-Za-z0-9\-]+/)*[A-Za-z0-9\-]+)?$ $1.php
Cela fonctionne si vous utilisez Apache et que vous avez mod_rewrite activé.
Autres conseils
Il suffit de créer un fichier .htaccess wamp / www / et copier-coller ce code ..
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]
Hope! ce serait utile pour quelqu'un !!
Vous voulez trouver la méthode appropriée de
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]
# To internally redirect /dir/foo/ to /dir/foo.php
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
Juste pour signaler que sur les anciennes versions de IIS par exemple IIS6 et en supposant que vous êtes dans un processus 32 bits alors IONICS ISAPI Rewrite est un module de réécriture fantastique URL gratuit. A l'intérieur de 64 bits dans IIS 6 J'ai trouvé le produit commercial Helicon ISAPI Rewrite 3 pour être un excellent outil. Mais si vous êtes en 32 bits, IONICS est gratuit et fait tout ce que vous aurez besoin.
Dans apache2.conf j'ai
<Files data>
ForceType application/x-httpd-php
</Files>
Ce qui signifie data
est traité comme un fichier PHP sans l'extension
Il y a plusieurs façons de le faire.
Vous pouvez utiliser mod-rewrite recâbler foo pour le fichier foo.php afin que les demandes de bar / traitées par /bar.php obtient.
Vous pouvez utiliser les répertoires et fichiers par défaut-, de sorte que vous un lien vers le direcory / foo / qui est piloté par /foo/index.php
Vous pouvez définir un script php comme gestionnaire pour 404 erreurs, alors vous juste un lien vers des fichiers couinent et les traite-gestionnaire de fichiers avec lui mais il aime. (Généralement en utilisant une sorte de carte de URL pour fichier php)
Vous pouvez dire à votre serveur Web que toute demande d'un certain serveur Web, doit être traitée par php.
La première ou la deuxième solution est la plus simple, mais dont les 2 dernières donne la meilleure flexibilité et des variantes de celui-ci est ce que la plupart des plus grands cadres font.
Sur les systèmes utilisant le serveur web Apache, vous pouvez utiliser mod_rewrite.
Sur les versions les plus récentes de IIS, vous pouvez utiliser leur version de mod_rewrite. Sur les anciennes versions, vous devez acheter un plug-in.
Recherche Stack Overflow et vous devriez trouver des réponses aux questions déjà posées.
Voici un tutoriel débutants pour la réécriture d'URL.
little modification - better to use REQUEST_URI and check for the directory
# Turn mod_rewrite on
RewriteEngine on
# To externally redirect /dir/foo.html to /dir/foo/
RewriteCond %{REQUEST_URI} ^(.+)\.html?$ [NC]
RewriteRule ^ %1 [R,L]
# To internally redirect /dir/foo/ to /dir/foo.html
RewriteCond %{DOCUMENT_ROOT}/$1 !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.*?)/?$ $1.html [L]
# To externally redirect /dir/foo.html to /dir/foo/
RewriteCond %{REQUEST_URI} ^(.+)\.html?$ [NC]
RewriteRule ^ %1 [R,L]
# To internally redirect /dir/foo/ to /dir/foo.html
RewriteCond %{DOCUMENT_ROOT}/$1 !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.*?)/?$ $1.html [L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
insérer ce code dans votre fichier .htaccess sur le serveur distant:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
va réécrire les URL de la façon dont vous l'intention.