La regla de reescritura de htaccess para una página PHP específica no funciona

La regla de reescritura de htaccess para una página PHP específica no funciona

Tengo el siguiente código en mi .htaccessarchivo, colocado en la raíz de miubuntu 22.04instancia:

Options +FollowSymLinks
RewriteEngine on

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

Mi objetivo es utilizar:

example.com/profile/johndoe

para obtener la siguiente URL de salida:

example.com/profile.php?user=johndoe

pero no funciona :(

mod_rewriteEstá encendido

Mi apache2.confaspecto es este:

<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>

No sé que estoy haciendo mal, cualquier ayuda será muy apreciada.

Respuesta1

Puedes intentar poner tu .htaccessarchivo en /var/www/html/. Probablemente su problema esté relacionado con los permisos. Verifique sus inicios de sesión /var/log/apache2/access.logy /var/log/apache2/error.logpara obtener más detalles.

Además, no permita el acceso al sistema de archivos raíz, es un problema de seguridad. Entonces cambia

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

a

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

información relacionada