/ arquivo / .htaccess não se aplica (removendo extensão .php) - php, .htaccess

O arquivo .htaccess não se aplicava (removendo a extensão .php) - php, .htaccess

Eu tentei remover apenas a extensão .php usando o arquivo .htaccess no meu servidor XAMPP localhost. Eu coloquei as seguintes linhas:

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]

Eu tentei mais opções para atingir meu objetivo, mas nada mudou. Fiz algo de errado?

Respostas:

0 para resposta № 1

Verifique se você tem AllowOverride All no httpd.conf arquivo (o arquivo de configuração para o apache). Se você estiver usando o XAMPP no Windows, o arquivo httpd.conf deverá residir em um diretório como: C: xamppapacheconfhttpd.conf

Adicione o AllowOverride All linha na tag do diretório. Por exemplo: <Directory C:xampphtdocs> AllowOverride All Allow from all </Directory>

P.S. Ao permitir a sobreposição, você diz ao servidor para permitir .htaccess arquivo para substituir a configuração padrão do servidor.

Edit: Desculpe que eu mencionei anteriormente AllowOverride "On". Deve ser AllowOverride "All". Isso funciona bem no meu Ubuntu. Eu vou tentar descobrir como fazer isso funcionar no windows (xampp) em breve.


0 para resposta № 2

O seguinte funciona para mim no apache2. Espero que também funcione no XAMPP. Isso é quase o mesmo que o seu código, mas verifica se o nome do arquivo solicitado não existe, e que o arquivo PHP faz existir.

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]