web-dev-qa-db-fra.com

XenForo SEO Friendly URL renvoie 404 sur la page du forum

J'ai mon fichier .htaccess dans le répertoire de base de l'installation de XenForo. Lorsque j'active les URL conviviales pour le référencement, l'erreur 404 est renvoyée uniquement sur les forums et les pages des membres.

fichier htaccess:

#   Mod_security can interfere with uploading of content such as attachments. If you
#   cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security.c>
#   SecFilterEngine Off
#   SecFilterScanPOST Off
#</IfModule>

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 406 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 503 default

<IfModule mod_rewrite.c>
    RewriteEngine On

    #   If you are having problems with the rewrite rules, remove the "#" from the
    #   line that begins "RewriteBase" below. You will also have to change the path
    #   of the rewrite to reflect the path to your XenForo installation.
    RewriteBase /

    #   This line may be needed to enable WebDAV editing with PHP as a CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
</IfModule>

lorsque vous regardez les liens lorsque les URL conviviales pour le référencement sont activées/désactivées index.php? est parti, ce qui est supposé faire mais il semble impossible de trouver les forums ...

3
diamondpumpkin

Apparemment pas, pas d'erreur du tout.

Il semble que les fichiers .htaccess ne soient pas autorisés/activés sur votre serveur, car l’ajout de texte aléatoire au fichier ne génère aucune erreur. (Vous vous attendriez à voir une erreur de 500 serveur interne sinon.)

Vous devez définir AllowOverride All (ou quelque chose de plus restrictif comme AllowOverride FileInfo - assez pour mod_rewrite) dans la configuration de votre serveur (conteneur <Directory>) qui couvre le répertoire racine du document.

Cependant, si vous avez accès à la configuration du serveur, vous pouvez effectuer tout cela dans la configuration du serveur sans utiliser .htaccess (recommandé).

Référence:
https://httpd.Apache.org/docs/2.4/mod/core.html#allowoverride


UPDATE: Et si cela ne fonctionne toujours pas, répétez les vérifications mentionnées dans les commentaires ci-dessus:

  • Est-ce que mod_rewrite est activé? Supprimez le wrapper <IfModule mod_rewrite.c> - obtenez-vous une erreur? Si mod_rewrite n'est pas activé, attendez-vous à voir une erreur 500 Internal Server (votre journal des erreurs doit contenir les détails spécifiques de l'erreur). Vous devez activer mod_rewrite et redémarrer Apache.
  • Est-ce que FollowSymLinks (ou SymLimksIfOwnerMatch) est activé? Ceci est nécessaire pour que mod_rewrite fonctionne. Ajoutez Options +FollowSymLinks en haut de votre fichier .htaccess.

Si vous voyez toujours un message 404 généré par Apache , alors "quelque chose d'autre" est en train de se passer, puisque l'URL n'est pas en cours de réécriture. (Votre fichier .htaccess semble "OK".)

Si vous voyez un 404 généré à partir de votre framework (XenForo), le problème vient de votre application.

1
MrWhite