Tengo el siguiente código en mi .htaccess
archivo, 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_rewrite
Está encendido
Mi apache2.conf
aspecto 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 .htaccess
archivo en /var/www/html/
. Probablemente su problema esté relacionado con los permisos. Verifique sus inicios de sesión /var/log/apache2/access.log
y /var/log/apache2/error.log
para 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>