2014-04-01 16 views
6

Sto usando apache2 (il mio server fittizio) che è già installato con il mio Debian. Ogni cosa va bene, ma ora il problema con la mia .htaccess.htaccess Non funziona in Linux (Debian) Apache2

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 

non funziona
penso che la sua versione a causa di apache2 che sto utilizzando & forse problemi con il mio codice o qualcosa che devo config sul mio server

voglio reindirizzare mio URL alla pagina indice principale se una voce errata o disponibile

+0

Che cosa stai cercando di fare esattamente con i tuoi URL? Cambia da cosa a cosa? Inoltre, perché hai due 'RewriteCond% {REQUEST_FILENAME}! -f' di quelli nel tuo codice? – Howli

+0

Il secondo è {REQUEST_FILENAME}! -l –

+0

Ok, e l'URL? Da cosa lo stai cambiando? – Howli

risposta

1

Questo codice:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,R] 

favore http://example.com/test.php-http://example.com/index.php?url=test.php se il file non esiste. L'unica differenza tra il mio codice qui e il tuo è che ho [R] invece di [QSA, L] Se ancora non funziona per te e hai il file htaccess nella cartella root, allora non penso che sia un file .htaccess problema

+0

Ho già provato con/mvc/index non funziona –

24

Dopo aver trascorso una giornata intera, ho avuto la mia risposta

Nella cartella
apache2 >>sites-available >> C'è file chiamato predefinito

In di default dobbiamo cambiarlo

Da:

<Directory /var/www/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride None 
     Order allow,deny 
     allow from all 
    </Directory> 

TO:

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

suo funzionamento. È abilitato l'uso di file .htaccess.

+3

Thx, questo funziona. Ma l'ho cambiato per Debian in /etc/apache2/apache2.conf – MoonYard

+0

Qui c'è una nota sugli "indici". Permetterò agli utenti di sfogliare le cartelle immagine/css/js. – Bira

7

vorrei aggiungere che /etc/apache2/mods-available/rewrite.load deve essere abilitato:

a2enmod rewrite 

Su Debian ho pensato che fosse attivata per impostazione predefinita, ma la mia non era.