/ / .htaccess súbor sa neaplikoval (odstránenie prípony .php) - php, .htaccess

súbor .htaccess neplatí (odstránenie prípony .php) - php, .htaccess

Pokúsil som sa odstrániť príponu .php iba pomocou súboru .htaccess na mojom serveri XAMPP localhost. Dal som doň nasledujúce riadky:

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]

Na dosiahnutie môjho cieľa som vyskúšal viac možností, ale nič sa nezmenilo. Urobil som niečo zle?

odpovede:

0 pre odpoveď č. 1

Skontrolujte, či máte AllowOverride All v httpd.conf file (konfiguračný súbor pre apache). Ak používate XAMPP v systéme Windows, potom by mal byť súbor httpd.conf umiestnený v adresári ako: C: xamppapacheconfhttpd.conf

Pridajte AllowOverride All v značke Directory. Napríklad: <Directory C:xampphtdocs> AllowOverride All Allow from all </Directory>

PS: Povolením prepísania poviete serveru, aby povolil .htaccess súbor na prepísanie predvolenej konfigurácie servera.

Upraviť: Je nám ľúto, že som už spomenul AllowOverride „On“. Malo by to byť AllowOverride „All“. V mojom ubuntu to funguje dobre. Čoskoro sa pokúsim zistiť, ako bude fungovať v systéme Windows (xampp).


0 pre odpoveď č. 2

Nasledujúce práce pre mňa pracujú na apache2. Dúfajme, že to bude fungovať aj na XAMPP. Je to takmer rovnaké ako váš kód, ale skontroluje sa, či požadovaný názov súboru neexistuje, a že súbor PHP robí existovať.

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]