2013-11-01 16 views
8

Ho un problema con uno script. Non funziona con un file htaccess che è necessario per funzionare. Ecco cosa contiene l'htaccess. Sto cercando di installarlo su un host locale di wamp. Il codice è:Errore interno 500 con RewriteEngine su .htaccess su localhost con wamp

#AddType x-mapp-php5 .php 
#AddHandler x-mapp-php5 .php 

RewriteEngine ON 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php/$0 [PT,L] 
#RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA] 

Options All -Indexes 

Se rimuovo questo funziona:

RewriteEngine ON 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php/$0 [PT,L] 
#RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA] 

Ma in questo modo i carichi di script, ma ogni pagina spettacolo errore 404. C'è un modo per risolvere questo problema ??

+0

Quindi 'Opzioni Tutti -Index' sta causando 500 errori? Puoi controllare il tuo error.log Apache? – anubhava

risposta

16

Sembra che non siano stati caricati i moduli di riscrittura. Trova file httpd.conf e assicurarsi che questa linea (o qualcosa di simile) è commentata:

LoadModule rewrite_module modules/mod_rewrite.so 
+0

Ho provato questo, ma è risultato semplicemente lo stesso errore. (Ubuntu 16.04, Django 1.10 WSGI) – Deleet

+0

Ma questo ha funzionato. http://stackoverflow.com/a/18161348/3980197 Dispari che posso abilitarlo tramite il comando della shell ma non da un'impostazione. – Deleet

+0

Non dimenticare di riavviare il tuo server Apache dopo aver apportato questa modifica! 'sudo apachectl restart' o qualsiasi cosa tu comandi. – vars

1

Ho avuto lo stesso problema. Per annullare il commento della riga, rimuovere il numero # davanti alla riga LoadModule rewrite_module modules/mod_rewrite.so

Ha funzionato per me in Wamp.

Directory del file httpd.conf: C: \ wamp \ bin \ apache \ apache2.4.9 \ conf

2

Verificare di avere il modulo Apache riscrittura caricato.

andare a wamp_manager -> apache -> moduli e cercare rewrite_module nell'elenco.

Se non dispone di un TICK accanto, fare clic su di esso. Apache verrà rimbalzato (stop, inizio). Riprova.

Il motore di rewite non funzionerà senza il modulo richiesto caricato.

0

Questa è una soluzione che ha risolto il problema per me. Il modulo di riscrittura è sempre stato abilitato, usato in IfModule rewrite_module, le autorizzazioni sono state concesse e il contenuto di .htaccess andava bene, eppure c'era ancora 500 errori nel tentativo di usare il modulo di riscrittura.

In httpd.conf by default: 

This is a source of a 500 error if you try to use rewrite in .htaccess in some sub directory. 

` 
# Deny access to the entirety of your server's filesystem. You must 
# explicitly permit access to web content directories in other 
# <Directory> blocks below. 
# 

    <Directory /> 
     AllowOverride none 
     Require all denied 
    </Directory> 
`  

Quindi uno potrebbe voler utilizzare .htaccess con modulo riscrittura in una directory specifica. Dovresti aggiungere un blocco <directory> per quella directory. Se si copia e incolla il blocco di directory, è necessario assicurarsi che l'intento del blocco che si copia sia corretto per la directory a cui si desidera applicarlo.

Quindi per mio intento questo blocco causa un errore 403, ma elimina l'errore 500.

<Directory "c:/Apache24/htdocs/store"> 
    AllowOverride All 
    Options None 
    Require all granted 
</Directory> 


Changing to this solved the issue: 

<Directory "c:/Apache24/htdocs/store"> 
    AllowOverride All 
    Require all granted 
</Directory> 

Suppongo che questo sia il motivo per cui la questione è comunemente visto, ma raramente risolto in queste discussioni. Se ho semplicemente copiato un blocco diverso, ho digitato il mio blocco, o ho avuto qualche comprensione di quello che stavo facendo, questo non sarebbe stato un problema.

Non posso dire che questo risolva il problema di tutti, ma odio quando le persone risolvono e corrono senza illuminare il resto di noi. Quindi per quelli che hanno fatto il mio errore, questa è la risposta.

Problemi correlati