Não é possível carregar o módulo mod_rewrite do Apache

2

Estou tentando usar mod_rewrite module de Apache24 server , mas não estou conseguindo carregá-lo. Eu sei que tem havido muitas perguntas sobre este tema e eu passei por todos eles, mas nada parece funcionar. Estes são os passos que eu tenho seguido até agora ---

  1. O arquivo CHANGED httpd.conf fez essas alterações:
    uma. Uncommented LoadModule rewrite_module modules/mod_rewrite.so
    b. AllowOverride None alterado para AllowOverride All

  2. Servidor apache reiniciado

  3. Verificou os módulos carregados usando o comando prompt de comando httpd -M . Eu posso ver lá que o módulo mod_rewrite foi carregado. Eu estou anexando a imagem abaixo.

Masdepoisderealizartodasessasetapas,nãoconsigovermod_rewritecomomódulocarregadoemphpinfo.

Comopodeservistonafotoacima,nãohámódulocarregadomod_rewrite.TambémcomoumhackselvagemeuatétenteireescreverURLsusandooarquivo.htaccess,masissonãoestáfuncionando.OApachepareceignoraroarquivo.htaccess,emboraeutenhacolocadoessearquivodentrodomeudiretórioraiz.

Note:Iamrunning'PHP'asanapachemoduleUsing'WAMP'stackUsing'localhost'asserver

EuprecisodestemódulomalparafinsdereescritadeURL.Vocêspodemsugeriroutramaneiradecarregarestemódulo?

EDITAR

EutenteireescreveroURLdohostvirtual,poisarespostasugerequeomóduloestácarregadoenãodependenemdo.htaccessnemdoinfo.php.Masaindanãoestáredirecionando.EstouadicionandoaconfiguraçãoVirtualhostabaixo---

<VirtualHost*:80><Directory"/Apache24/htdocs">
Options FollowSymLinks 
AllowOverride All
DirectoryIndex index.html index.php
</Directory>
ServerName localhost
DocumentRoot "/Apache24/htdocs"
ErrorLog "/Apache24/logs/error.log"
CustomLog "/Apache24/logs/access.log" combined
<directory "/Apache24/htdocs">

    <IfModule rewrite_module>
            Options +FollowSymlinks
            RewriteEngine On
    </IfModule>

    <IfModule rewrite_module>
            RewriteRule   ^working.php   fun.html
    </IfModule>

</directory>
# Rewrite Rules #####################
RewriteEngine On
RewriteRule   ^working.php   fun.html
# end Rewrite Rules #################   
</VirtualHost>

O código acima não o redireciona para working.php quando tento executar fun.html . Simplesmente diz:

the requested URL /working.php was not found on this server.

    
por neophyte 23.01.2017 / 01:31

2 respostas

0
  1. Você não precisa do .htaccess ou do AllowOverride para que o mod_rewrite funcione, não use, já que você é o administrador do seu servidor, pois isso complicará sua vida e causará sobrecarga desnecessária ao seu servidor.
  2. Além de carregar o módulo, a única diretiva que você precisa é:

    RewriteEngine em

Extra:

  1. Considere Redirect / RedirectMatch em vez disso (de mod_alias) para redirecionamentos simples, se isso for tudo o que você precisa.
  2. Considere definir seus redirecionamentos / reescritos no contexto de host virtual para evitar futuros pesadelos e perda de cabelo no futuro próximo.
por 23.01.2017 / 11:13
1

A partir das capturas de tela vinculadas, a Raiz do servidor (caminho do sistema de arquivos) parece ser C:/Apache24 , mas você não faz referência a C: em nenhuma das diretivas de configuração do servidor? Você precisa referenciar o caminho completo do sistema de arquivos, por exemplo:

<Directory "C:/Apache24/htdocs">
RewriteRule   ^working.php   fun.html

Esta diretiva, usada diretamente no VirtualHost (fora de um contêiner <Directory> ), nunca será correspondida. Quando usado em um contexto do VirtualHost (ou config do servidor), o mod_rewrite corresponde ao caminho completo do URL, que inclui o prefixo da barra. Esta é uma diferença importante ao usar o mod_rewrite como um diretório / .htaccess context (quando o prefixo da barra é excluído).

    
por 25.01.2017 / 17:01