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 № 1Verifique 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]