matthiasbe / gront

E-commerce hybrid application Gront powered by Ionic.
1 stars 0 forks source link

[Website] pages inaccessibles #1

Closed matthiasbe closed 8 years ago

matthiasbe commented 8 years ago

Il y a un problème lors du chargement des pages: http://gront.fr/page-d-exemple/ indique un page not found avec une erreur 404.

Cela me pose également un problème pour récupérer les données de la base de données wordpress via l'API REST. En effet j'ai besoin d'accéder à la page http://gront.fr/wp-json/wp/v2[...] qui me renvoie également une error 404 page not found.

Interprétation de l'erreur : sachant que les pages pages d'accueil et d'administration fonctionnent correctement, et d'après les recherches faites, j'en déduis que c'est une erreur au niveau des permaliens. Les permaliens définissent le format de l'url pour accèder aux différentes page crées sur le site. Il y a différents formats disponible comme défault (ex: http://gront.fr/?p=123) ou postname (ex : http://gront.fr/exemple-article/).

En effet j'ai dû pour faire fonctionner le endpoint passer des parmaliens par défaut au permaliens postname. Je n'ai pas vu si les pages se chargeaient avant de changer les permaliens. Mais une fois que je les ai changé, ni les pages ne se chargaient plus. J'ai tenté de repassé en default sans succès.

Interprétation à un niveau plus bas : Les permaliens utilisent en réalité le fichier .htaccess qui permettent de créer des RewriteRule, qui reformattent les url comme voulue pour s'adapter au format de permalien. Il y a donc peut-être moyen de corriger directement dans le .htaccess le problème rencontrer. Voici ce à quoi ressemble le .htaccess :

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Dans ce genre de problème, il peut s'agir d'une non-prise en compte dans le fichier .htaccess d'un sous dossier dans lequel serait placé les fichier du site, les rendant inaccessible.

Autre recherche : mod_rewrite Pour fonctionner correctement les RewriteRule (et donc les permaliens) ont besoin que le module mod_rewrite soir activé. Il s'agit d'un module PHP qui n'est pas facilement activable sur un serveur distant. Mais il d'après Gandi, ce module est activé dans la formule Simple Hosting.

matthiasbe commented 8 years ago

Un bon lien pour l'explication des permaliens: https://codex.wordpress.org/fr:Utilisation_des_permaliens

matthiasbe commented 8 years ago

D'après le lien il faudrait ajouter une règle de type

 <Directory />
    Options FollowSymLinks
    AllowOverride All
 </Directory>

Au fichier httpd.config. Mon problème est donc de le trouver sur le serveur...

Cela est utile dans le cas ou le fichier .htaccess est ignoré.

Je ne suis pas sûr que ce soit le cas vu que lorsque l'on ne met rien dans ce fichier, on obtient une erreur 404 par défaut, alors que lorsqu'on met le contenu donné par WP, on obtient une erreur 404 personnalisée file not found. De plus on a une erreur 500 si on rajoute de mauvaise lignes dans le .htaccess.

Cela est notamment expliqué dans ce thread stackoverflow. http://stackoverflow.com/questions/9234289/how-to-debug-htaccess-rewriterule-not-working

matthiasbe commented 8 years ago

Voici le lien vers le ticket ouvert sur le forum gandhi : http://groups.gandi.net/fr/topic/gandi.fr.hebergement.simple/40343

matthiasbe commented 8 years ago

En réalité je suis allé un peu loin... C'était juste la page d'index qui avait été changée, et qui empêchait WP de fonctionner correctement.