Eu tenho o seguinte código em meu .htaccess
arquivo, 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_rewrite
está ligado
Meu apache2.conf
fica 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 .htaccess
arquivo em /var/www/html/
. Seu problema provavelmente está relacionado à permissão. Verifique seus logins /var/log/apache2/access.log
e /var/log/apache2/error.log
para 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>