Regra Htaccess não aplicável

1

Eu tenho as seguintes regras no meu arquivo htaccess para remover a extensão .php e fazer um redirecionamento 301 para a URL sem extensão:

# To remove .php extension
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ (.*)\.php [NC]
RewriteRule ^ %1 [R=301,L]

# To check whether the file exists then set it back internally
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^.*$ $0.php [L]

Eu quero aplicar as seguintes regras em um arquivo PHP:

RewriteRule ^test/([0-9]+)$ test.php?id=$1 [L]

A regra acima leva a 500 erros internos no servidor. Se eu remover o primeiro conjunto de regras, a segunda regra funcionará novamente. Portanto, há algum conflito com o conjunto de regras.

    
por Michael Samuel 05.11.2017 / 11:45

1 resposta

1

O problema é a ordem das regras :)

Quando mudei a ordem da seguinte forma, tudo funcionou:

RewriteRule ^test/([0-9]+)$ test.php?id=$1 [L]

# To remove .php extension
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ (.*)\.php [NC]
RewriteRule ^ %1 [R=301,L]

# To check whether the file exists then set it back internally
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^.*$ $0.php [L]=
    
por 07.11.2017 / 00:53