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?

Était-ce utile?

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 !!

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.

Stack Overflow article

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top