J'essaie actuellement de comprendre comment supprimer l'extension .php
de la barre d'URL. Cependant, lorsque je supprime .php
, cela me donne une page blanche vierge.
Quelqu'un pourrait-il s'il vous plaît être en mesure d'expliquer pourquoi cela se produirait?
J'ai ajouté au php.ini
: expose_php=Off
Et j'ai aussi ceci dans mon .htaccess
:
# Return 404 if original request is /foo/bar.php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]
Puis j'ai commencé à écrire ce qui suit pour URL
:
<?php
function parseCurrentURL() {
$pageURL = 'http';
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
if(parse_url(parseCurrentURL(), PHP_URL_PATH)){
$url = parse_url(parseCurrentURL(), PHP_URL_PATH);
switch(substr($url, strrpos($url, '/') + 1)){
case 'forums':
break;
}
}
?>
Exemple avec .php
:
Exemple sans .php
:
3 réponses
Il y a mon code htaccess pour vérifier si cela fonctionne pour vous
# Default directory
DirectoryIndex index.php
# ERROR FILES
RewriteEngine On
ErrorDocument 404 /page404.php
ErrorDocument 500 /page500.php
# Remove the need for www in Your URL
RewriteCond %{HTTP_HOST} ^xxxx.pt$ [NC]
RewriteRule (.*) http://www.xxxx.pt/$1 [R=301,L]
# Exclude administrador folder
RewriteRule ^(administrador)($|/) - [L]
# Rewrite URLs
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]
##Expire headers
<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default directive
ExpiresDefault "access plus 1 month"
# My favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 month"
# Javascript
ExpiresByType text/javascript "access plus 1 month"
</IfModule>
J'utilise actuellement ce code dans mon .htaccess pour supprimer l'extension .php et je n'obtiens jamais de page vierge
# Rewrite URLs
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]
Le problème peut être résolu avec la configuration apache .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Plus d'informations ici https: // alexcican. com / post / comment-supprimer-php-html-htm-extensions-avec-htaccess /
De nouvelles questions
php
PHP est un langage de script largement utilisé, de haut niveau, dynamique, orienté objet et interprété, principalement conçu pour le développement Web côté serveur. Utilisé pour les questions sur le langage PHP.