Questão Como ativar o mod_rewrite no Apache?


Acabei de instalar a pilha LAMP no meu sistema Ubuntu.

O redirecionamento não está funcionando para mim. Eu não sei como consertar isso. Alguém pode me ajudar?


159
2018-06-12 13:45


origem


IMHO esta questão não é específica do Ubuntu e deve ser migrada para Falha do servidor. - Paolo
O OP instalou a lâmpada no UBUNTU. Quanto mais específico do Ubuntu você quer? - wojox
@wojov: Eu não sei sobre este caso, mas esse argumento não funciona. "Como posso usar este aplicativo (no Ubuntu)?" são principalmente off-topic.
Este não é um "Como posso usar o aplicativo", mas um "como habilitar um recurso específico no Ubuntu". O Apache no Ubuntu usa um layout de configuração diferente no qual cada módulo e host virtual é um arquivo /etc/apache2 e que pode ser ativado usando a2* programas. - Lekensteyn
Você deve descrever o que você fez para diminuir o problema, - ericn


Respostas:


Para habilitar o módulo de reescrita, execute "reescrita do módulo de ativação do apache2":

sudo a2enmod rewrite

Você precisa reiniciar o servidor da Web para aplicar as mudanças:

sudo service apache2 restart

Se você planeja usar mod_rewrite em .htaccess arquivos, você também precisa ativar o uso de .htaccess arquivos, alterando AllowOverride None para AllowOverride FileInfo. Para o site padrão, edite /etc/apache2/sites-available/default:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

Depois de tal mudança, você precisa reiniciar o Apache novamente.


231
2018-06-12 13:49



Eu tive mais sucesso com o AllowOverride All - Valentin Despa
Obrigado! sudo a2enmod rewrite e FileInfo consertou para mim! - d-_-b
Para mim esse arquivo era /etc/apache2/apache2.conf onde encontrei aquela entrada de configuração - rahmanisback
Sim, faça as duas alterações resolverem o problema. - Adelin
Não está funcionando para mim. Eu postei uma pergunta aqui askubuntu.com/questions/809619/failing-to-rewrite-url - Suhail Gupta


Eu me atrevo a adicionar uma resposta especial (como seguimento à grande resposta acima) sobre ubuntu 14.04 e .htaccess :

Em 14.04, o nome do arquivo de configuração padrão é alterado para 000-default.conf :

sudo gedit /etc/apache2/sites-available/000-default.conf

adicione o seguinte ao final do arquivo:

<Directory "/var/www/html">
    AllowOverride All
</Directory>

Por algum motivo, no Ubuntu 14.04 e apache2 a raiz está definida para /www/html. Se você quiser mudar a raiz do servidor web de volta para boa /www, open 000-default.conf e mudar

DocumentRoot /var/www/html/

para

DocumentRoot /var/www/

e depois claro que deveria ser

<Directory "/var/www">
    AllowOverride All
</Directory>

49
2017-10-17 13:00



Thanx para informações! Desta / nova maneira podemos usar www como pasta onde colocamos todos os sites, e html é por padrão "website" para localhost. Pode ser importante se você estiver jogando com a abertura de portas para o mundo - que desta forma seu host local não pode ver pastas de outros projetos. - Vladimir Vukanac
Não está funcionando para mim. estou usando Ubuntu 14.04.4 LTS - Suhail Gupta