regra de reescrita do htaccess para uma página PHP específica não funciona

regra de reescrita do htaccess para uma página PHP específica não funciona

Eu tenho o seguinte código em meu .htaccessarquivo, colocado na raiz do meuUbuntu 22.04instância:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^profile/([^/]*)$ /profile.php?user=$1 [L]

Meu objetivo é usar:

example.com/profile/johndoe

para obter o seguinte URL de saída:

example.com/profile.php?user=johndoe

mas não funciona :(

mod_rewriteestá ligado

Meu apache2.conffica assim:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<Directory /var/www/html/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Não sei o que estou fazendo de errado, qualquer ajuda será muito apreciada

Responder1

Você pode tentar colocar seu .htaccessarquivo em /var/www/html/. Seu problema provavelmente está relacionado à permissão. Verifique seus logins /var/log/apache2/access.loge /var/log/apache2/error.logpara mais detalhes.

Além disso, não permita acesso ao sistema de arquivos raiz, é uma questão de segurança. Então mude

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

para

<Directory />
    Options FollowSymLinks
    Require all denied
</Directory>

informação relacionada