como habilitar o mod_rewrite para o xampp?

1

Eu estou recebendo um 404 não encontrado ao fazer um mod reescrever no meu arquivo htaccess, acessando localhost

Como posso fazer isso funcionar, todas as referências que encontrei me fazem editar um arquivo em / etc / apache2 / mods-enabled

para mim não existe a pasta / etc / apache2, onde o apache está instalado?

usando o xampp, link

    
por Marchosius 05.09.2012 / 20:32

3 respostas

3

Você fez uma pergunta para o xampp em seu título, mas descreveu o problema do apache2 na descrição. Ambos são métodos diferentes para executar o servidor web apache.

A configuração do xampp é diferente do apache2. O xampp contém o apache e o mysql dentro dele, se você instalou o xampp, você não precisa instalá-los separadamente.

xampp não identifica a2enmod ou a2dismod, mesmo você instalou o xampp no Ubuntu. Eles (a2enmod ou a2dismod) foram configurados para o apache2.

A configuração do xampp é muito semelhante ao httpd de centOS ou fedora.

O XAMPP é instalado como / opt / lampp. Os módulos de reescrita estão ativados por padrão no xampp. Você pode verificá-lo no arquivo /opt/lampp/etc/httpd.conf. Deve haver linha

LoadModule rewrite_module modules/mod_rewrite.so

lá no arquivo httpd.conf, assim como o arquivo mod_rewrite.so está disponível em módulos. Se a linha é comentada, isso significa que o módulo está desativado. A linha deve ser descomentado, assim como o arquivo .so não deve estar corrompido se você quiser usar regras de reescrita no xampp.

    
por Pavi Kanetkar 09.07.2014 / 10:00
1

Não se esqueça de configurar o httpd.conf nesta seção:

<Directory />
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

você deve ativar o mod_rewrite:

sudo a2enmod rewrite

e reinicie o apache:

sudo service apache2 restart

Para garantir isso, você pode verificar em phpinfo em Configuration > apache2handler > Loaded Modules deve ser escrito mod_rewrite e significa que mod_rewrite está ativado. Espero que possa ajudar.

    
por metamorph 29.10.2012 / 09:37
0

Não tenho certeza se o XAMPP realmente tem a estrutura habilitada para sites / sites-enabled, mods-available / mods-enabled que os pacotes do Ubuntu Apache usam. Mas se esses diretórios estiverem lá, eu esperaria que eles estivessem em algum lugar em / opt / lampp / etc, porque o arquivo de configuração principal httpd.conf está lá (de acordo com link ).

De acordo com algumas entradas de blog (bastante datadas) no XAMPP, pode haver uma diretiva LoadModule apropriada nesse httpd.conf, algo com o efeito de

#LoadModule rewrite_module path/to/mod_rewrite.so

Se isso ainda for atual, você precisará remover o símbolo de comentário (#) dessa linha. Além disso, você precisa ativar a substituição local das configurações centrais (por exemplo, de um arquivo htaccess ou um vhost). Então você precisa procurar

AllowOverride None

e mude para

AllowOverride All

Isso pode aparecer no httpd.conf mais de uma vez, você precisa ajustar cada ocorrência. Após a próxima reinicialização do Apache, o mod_rewrite deve estar funcionando.

No final do dia, o sistema mod-available / mod-enabled é "apenas" uma maneira conventient de gerenciar snippets de configuração como o LoadModule acima, veja por exemplo /etc/apache2/mods-available/rewrite.load dos pacotes do Ubuntu Apache).

    
por Henning Kockerbeck 09.09.2012 / 23:21