Ho provato a rimuovere solo l'estensione .php utilizzando il file .htaccess sul mio server XAMPP localhost. Ho inserito le seguenti righe:
RewriteEngine On
RewriteOptions inherit
Options +FollowSymlinks
Options -Multiviews
## hide .php extension
## To externally redirect /dir/foo.php to /dir/foo
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
Ho provato più opzioni per raggiungere il mio obiettivo, ma nulla è cambiato. Ho fatto qualcosa di male?
risposte:
0 per risposta № 1Controlla se lo hai AllowOverride All
nel httpd.conf file (il file di configurazione per apache). Se si utilizza XAMPP su Windows, il file httpd.conf dovrebbe risiedere in una directory come: C: xamppapacheconfhttpd.conf
Aggiungi il AllowOverride All
linea nel tag Directory. Per esempio:
<Directory C:xampphtdocs>
AllowOverride All
Allow from all
</Directory>
Post scriptum Consentendo l'override, dici al server di consentire il .htaccess
file per sovrascrivere la configurazione predefinita del server.
Modifica: Scusa se in precedenza ho menzionato AllowOverride "On". Dovrebbe essere AllowOverride "All". Questo funziona bene nella mia ubuntu. Proverò a scoprire come farlo funzionare presto in windows (xampp).
0 per risposta № 2
I seguenti lavori per me su apache2. Spero che funzionerà anche su XAMPP. Questo è quasi uguale al tuo codice, ma controlla il nome file richiesto non esistee che il file PHP fa esistere.
RewriteEngine On
RewriteOptions inherit
Options +FollowSymlinks
Options -Multiviews
## hide .php extension
## To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ %{REQUEST_FILENAME}.php [NC,L]