Sto cercando di utilizzare il mod_rewrite
modulo di Apache24 server
, ma non riesco a caricarlo. So che ci sono state molte domande su questo argomento e le ho esaminate tutte, ma nulla sembra funzionare. Questi sono i passaggi che ho seguito fino ad ora ---
Il
httpd.conf
file CHANGED ha apportato queste modifiche:
a. Non commentatoLoadModule rewrite_module modules/mod_rewrite.so
b. ModificatoAllowOverride None
inAllowOverride All
Server Apache riavviato
Moduli caricati controllati utilizzando il comando prompt dei comandi
httpd -M
. Vedo che il modulo mod_rewrite è stato caricato. Ti allego l'immagine qui sotto.
Ma dopo aver eseguito tutti questi passaggi non riesco a vedere mod_rewrite come modulo caricato in phpinfo
.
Come si può vedere nella figura sopra, non esiste un modulo caricato mod_rewrite. Anche come hack selvaggio ho anche provato a riscrivere gli URL usando il .htaccess
file ma questo non funziona. Apache sembra ignorare il .htaccess
file anche se ho inserito quel file nella mia directory principale.
Note: I am running `PHP` as an apache module
Using `WAMP` stack
Using `localhost` as server
Ho bisogno di questo modulo per scopi di riscrittura degli URL. Ragazzi, potete suggerire un altro modo per caricare questo modulo?
MODIFICARE
Ho provato a riscrivere l'URL dall'host virtuale poiché la risposta suggerisce che il modulo è caricato e non dipende né da .htaccess
né da info.php
. Ma non sta reindirizzando. Sto aggiungendo l' Virtual host
impostazione di seguito ---
<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>
Il codice sopra riportato non lo reindirizza a working.php
quando provo a eseguire fun.html
. Dice semplicemente:
l'URL richiesto /working.php non è stato trovato su questo server.
phpinfo()
mostra tutti i moduli PHP caricati. Quelle sono cose separate rispetto ai moduli Apache. Non so perché il modulo non funzioni.
FollowSymLinks
(o SymLinksIfOwnerMatch
) deve essere abilitato affinché mod_rewrite funzioni. per esempio. Options +FollowSymLinks
.
.htaccess
file non sono abilitati per questa directory?) Tuttavia, se viene visualizzato un errore (ad es. Un errore 500), è possibile che mod_rewrite non sia abilitato.
mod_rewrite
è un modulo Apache, PHP non ne saprà nulla e quindi non si presentaphpinfo()
. I moduli PHP sono una cosa completamente separata.