Domanda

In passato sono riuscito con successo a copiare / modificare / incollare le regole di riscrittura su un server Apache su cui avevo un controllo limitato.

Ora, tuttavia, sto sperimentando un server Apache che posso riavviare e configurare in base al contenuto del mio cuore, ma non riesco a far funzionare nemmeno un esempio di riscrittura di base, ovvero dopo aver letto almeno due tutorial. Ho giocato con LogLevel e RewriteLog ma non riesco a trovare prove concrete del fatto che vengano utilizzate le mie regole di riscrittura di base. Il mio file di registro di riscrittura è stato creato ma è vuoto. Ho anche provato a commentare ogni cosa da httpd.conf tranne le cose di riscrittura.

Vediamo quali altre informazioni posso aggiungere:

chilcott:/etc/apache2/conf.d# uname -a
Linux chilcott 2.6.26-1-486 #1 Sat Jan 10 17:46:23 UTC 2009 i686 GNU/Linux


chilcott:/etc/apache2/conf.d# apache2ctl -V
Server version: Apache/2.2.9 (Debian)
Server built:   Jan 20 2009 17:29:25
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT=""
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"
È stato utile?

Soluzione

Hai le tue regole di riscrittura nella sezione giusta del tuo httpd.conf? Probabilmente dovrebbero trovarsi in una sezione vhost.

La pubblicazione di httpd.conf (o almeno in parte) potrebbe essere utile.

Dovrebbe apparire un po 'così:

LoadModule rewrite_module modules/mod_rewrite.so

RewriteLogLevel 9
RewriteLog ".....rewrite.log"


<VirtualHost *:80>
    DocumentRoot "..."

    RewriteEngine On
    RewriteRule ^/foo /bar
</VirtualHost>

Altri suggerimenti

È necessario caricare il modulo per usarlo. Cerca nel tuo file httpd.conf una riga come la seguente e rimuovi il carattere di commento principale # se presente:

#LoadModule rewrite_module modules/mod_rewrite.so

Quindi devi solo riavviare il tuo server Apache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top