Apache .htaccess <ifModule non autorisé ici


13

Exécution d'Apache sur Ubuntu Precise, avec PHP 5.5

Essayer d'accéder à mon var/www/me donne un 500.

/var/log/apache2/error.log

spectacles:

/var/www/web/.htaccess: <IfModule not allowed here

mon .htacess est:

DirectoryIndex app.php


<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>       
        RedirectMatch 302 ^/$ /app.php/       
    </IfModule>
</IfModule>

Dans mon apache.conf, j'ai ajouté:

<Directory />
AllowOverride ALL
</Directory>

Et cela a fonctionné après avoir redémarré Apache.

Réponses:


25

Vous devez configurer votre apache pour activer la configuration à partir du fichier .htaccess. Donc, dans la section répertoire, assurez-vous que vous avez la possibilité

Allowoverride ALL 

pour plus d'informations plus d'informations sur allowoverride .

Dans votre configuration, si vous utilisez uniquement mod_rewrite, vous pouvez peut-être définir uniquement FileInfo, je règle toujours le paramètre Options sur SymLinksIfOwnerMatch pour pouvoir effectuer une redirection vers d'autres sites.

Allowoverride FileInfo 
Options SymLinksIfOwnerMatch

J'espère que cela vous aidera, si vous avez déjà défini cette configuration, veuillez ajouter des informations avec votre configuration de virtualhost.


Il s'agit d'une nouvelle installation d'Apache. Je n'ai pas de section <Directory /> dans apache2.conf. J'ai ajouté ma mise à jour ci-dessus. Merci
Kiksy

J'ai oublié de redémarrer Apache. Cela fonctionne maintenant.
Kiksy

1
De mon côté, j'avais une Directorydirective manquante . Une fois ajouté, cela a fonctionné correctement. Je suppose que c'est nouveau dans la version 2.4 d'Apache car il fonctionnait avec 2.2 ...
Alexis Wilke

1
Oui, la valeur par défaut de Allowedoverride a changé dans Apache 2.3.9.
mlissner
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.