Seulement page principale accessible...

Nouveau WRInaute
Bonjour à tous,

Depuis la dernière mise à jour de Wordpress, seulement la page principale de mon site fonctionne, les liens de menus renvois vers rien :
https://brainsecureconsulting.eu/

Je pense que le problème vient de htaccess, mais j'ai un peu de mal.
Mon site principal se trouve dans : Web\wordpress
et j'ai d'autre applications accessibles dans Web\

Auriez-vous une idée svp ?


Voici le htaccess :

Code:
## No directory listings
<IfModule autoindex>
  IndexIgnore *
</IfModule>

## Suppress mime type detection in browsers for unknown types
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
</IfModule>

## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Options -Indexes

## Mod_rewrite in use.

RewriteEngine On

# skip /wordpress/ from rules below
RewriteCond %{REQUEST_URI} !^/(wordpress|rainloop/.*)$

#Force to HTTPS
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://brainsecureconsulting.eu/$1 [R,L]

# Change 'subfolder' to be the folder you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/wordpress/

# Don't change these lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Change 'subfolder' to be the folder you will use for your main domain.
RewriteRule ^(.*)$ /wordpress/$1 [L]

# Change yourdomain.com to be your main domain again.
# Change 'subfolder' to be the folder you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$ [NC]
RewriteRule ^(/)?$ wordpress/index.php [L]


## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site then comment out the operations listed
# below by adding a # to the beginning of the line.
# This attempts to block the most common type of exploit `attempts` on Joomla!
#
# Block any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root home page
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.



RewriteBase /

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.
 
WRInaute occasionnel
Bonjour,
Bizarre cette redirection dans le .htaccess.
C'est plutôt le nom de domaine qui devrait directement pointer vers le bon répertoire non ?
 
WRInaute accro
Mauvaise configuration :D
Faire beaucoup plus simple : faire pointer directement le nom de domaine sur le répertoire wordpress.

Et SURTOUT supprimer les rewrite rules "Joomla" dans un htaccess wordpress
 
Nouveau WRInaute
Bonjour,
Merci pour vos retours :)

Comment faire pointer directement le nom de domaine sur le répertoire wordpress ?
 
Nouveau WRInaute
l'hébergeur c'est moi sur un serveur privé :)
ça ne se fait pas dans le htaccess directement ?

edit : j'ai déjà configuré la redirection dans le vhost. Le htaccess vient supprimer "wordpress" de l'URL en faisant de la réécriture

Si je supprimes la configuration Joomla, voici ce que j'obtiens en cliquant sur un menu :

wordpress_error.JPG
 
Dernière édition:
WRInaute occasionnel
Il est géré avec quoi votre serveur privé ? Un panel particulier ?
Pour repartir sur des bases saines, conserver le contenu du .htaccess et en remettre un vierge. Un site est normalement accessible sans .htaccess. Ce dernier sert à optimiser par la suite.
 
Nouveau WRInaute
c'est un NAS ; avec Apache et PHP 8 (je peux mettre PHP 7.3, 7.4 ou 8.3).

J'ai testé avec un .htaccess vide ; voici le résultat de la page principale :
 

Fichiers joints

  • wordpress_error2.JPG
    wordpress_error2.JPG
    43.4 KB · Affichages: 3
WRInaute occasionnel
Bonsoir,

D'après ton image, tu utilises cela : https://www.asustor.com/online/College_topic?topic=321#vh11

Je ne sais pas comment ton NAS était configuré avant, ni même comment cela fonctionne.

Ce @Marie-Aude voulait dire, c'est ici :

Mettre le "document root" de l'hote virtuel sur le dossier wordpress/ : https://www.asustor.com/images/tinymce/upload_img_20221214172337_Web_Center_add_virtual_host.png

Mais la configuration étant un peu particulière, il faut un peu tatônner.

Le domaine brainsecureconsulting.eu pointe sur ton IP Free.

As tu un hote virtuel configuré qui pointe pour le domaine brainsecureconsulting.eu sur le dossier /wordpress , si oui, quel est le port indiqué ?

Cordialement,

Eric

PS : ici un .htaccess joomla typique : https://www.batbat.fr/htaccess.txt
 
Dernière édition:
Nouveau WRInaute
Merci pour vos retour.

J'ai appliqué vos conseils, mais toujours pareil : site KO

- Voici la configuration du vHost, avec le pointage vers /Web/wordpress :

- J'ai mis dans le fichier .htaccess seulement :

Code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?$domain.tld$
RewriteCond %{REQUEST_URI} !^/$newfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$newfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?$domain.tld$
RewriteRule ^(/)?$ $newfolder/index.php [L]
</IfModule>

en modifiant domain.tld et newfolder


A savoir que le site fonctionnait sans problème depuis plus d'un an en Wordpress 6.5.5 !
Depuis la mise à jour en 6.6.1 ; j'ai ces soucis.

Merci
 

Fichiers joints

  • vhost.png
    vhost.png
    12.3 KB · Affichages: 2
WRInaute occasionnel
Et bien, je n'ai pas de redirection.

Code:
curl -IL https://brainsecureconsulting.eu
HTTP/1.1 200 OK
Date: Wed, 28 Aug 2024 13:06:04 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8

Peux tu donner une copie de ton contenu .htaccess ci-dessous en réponse ?

Pour tester tu peux également ajouter un fichier nommé index.html avec pour seul contenu par exemple le mot "TEST" dans le dossier web.
 
Dernière édition:
Nouveau WRInaute
Voici le htaccess :

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?$brainsecureconsulting.eu$
RewriteCond %{REQUEST_URI} !^/$wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?$brainsecureconsulting.eu$
RewriteRule ^(/)?$ $wordpress/index.php [L]
</IfModule>


J'ai créé le index.html dans /Web
 
WRInaute occasionnel
Remplace les $brainsecureconsulting.eu et $wordpress par brainsecureconsulting.eu et wordpress
 
Nouveau WRInaute
merci la page d'accueil refonctionne ! :)

mais les autre pages sont toujours KO (error 500) :
 

Fichiers joints

  • error.png
    error.png
    23.3 KB · Affichages: 1
Nouveau WRInaute
Voici le contenu du htaccess dans /wordpress :

# BEGIN WordPress
# Les directives (lignes) entre « BEGIN WordPress » et « END WordPress » sont générées
# dynamiquement, et doivent être modifiées uniquement via les filtres WordPress.
# Toute modification des directives situées entre ces marqueurs sera surchargée.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

#END WordPress


En parallèle je regarde si je vois quelque chose.
 
Nouveau WRInaute
Merci, j'ai suivi la méthode 1 du lien, et j'arrive au même point qu'avant :) (les liens renvoient des pages vides)
J'ai bien mis à jour les permalink.

J'hésite à tout effacer, réinstaller la version 6.5.5 et remettre un backup...


Voici le htaccess and /Web (aucun dans /wordpress)


<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteRule ^(/)?$ wordpress/index.php [L]
</IfModule>


# BEGIN WordPress
# Les directives (lignes) entre « BEGIN WordPress » et « END WordPress » sont générées
# dynamiquement, et doivent être modifiées uniquement via les filtres WordPress.
# Toute modification des directives situées entre ces marqueurs sera surchargée.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
 
Nouveau WRInaute
J'ai une piste !

Toutes les pages sont OK dans l'éditeur.
Mais quand je sauvegarde; voici le message d'erreur :

et quand j'active un plugin (redirection) pour faire des tests ; voici les messages qu'il renvoie :

donc il y a un problème avec l'API REST.

Savez-vous comment le réparer ?

EDIT :
j'ai trouvé plusieurs forum qui parle du même problème.
En passant les permaliens en "simple" ; le site fonctionne !!!! :)
Mais j'aimerai utiliser les permaliens "Titre de publication".

Auriez-vous une idée ?

Voici les forums :
https://stackoverflow.com/questions...nks-working-wordpress-others-become-404-error
=> Ici ils parlent de ça : It could be a broken rewrite_rules field in your database.
https://wpfr.net/support/sujet/mise-a-jour-echouee-la-reponse-nest-pas-une-reponse-json-valide-3/
 

Fichiers joints

  • erreur_json.JPG
    erreur_json.JPG
    12.2 KB · Affichages: 1
  • erreur_json2.JPG
    erreur_json2.JPG
    43.2 KB · Affichages: 1
Dernière édition:
WRInaute occasionnel
I -
J'hésite à tout effacer, réinstaller la version 6.5.5 et remettre un backup
Pas sûr que ce soit la bonne solution.

Pour la méthode 1 : l'install se fait à la racine web puis le contenu est déplacé dans le dossier devant contenir les fichiers wordpress.

Je ne sais pas comment s'est faite l'install initiale de wordpress.

Peux tu regarder dans le fichier wp-config si tu as une valeur définie pour WP_SITEURL ? https://fr.wordpress.org/support/article/editing-wp-config-php/#wp_siteurl - La valeur de WP_SITEURL surpasse l’option siteurl de la table wp_options.

II - je viens de visiter le site :
- l'admin est accessible par /wordpress/wp-admin
- les pages fonctionnent, à part la page de contact, mais sans le renommage d'url.

III - pour le contenu du .htaccess de la racine (dossier web), c'est toi qui a ajouté manuellement ce qui est entre # BEGIN WordPress et # END WordPress ?



C'est autour du .htaccess et de la config initiale de wordpress (lors de la première installation) que se situe le noeud.

As tu des sauvegardes de tout le dossier web et de son sous-dossier wordpress pour voir ce que la mise à jour aurait changé au niveau des .htaccess et de ton wp-config.php ?
 
Nouveau WRInaute
1 - Les valeurs sont bien déclarées dans le wp-config.php

define( 'WP_HOME', 'https://brainsecureconsulting.eu' );
define( 'WP_SITEURL', 'https://brainsecureconsulting.eu/wordpress' );


2- Pour bloquer l'accès à l'admin depuis internet , un chmod sur les dossier suffit ?
Pour moi la page contact fonctionne (Chrome)

3- Le .htaccess avait été complété automatiquement quand j'ai suivi la précédure 2. du lien : https://developer.wordpress.org/advanced-administration/server/wordpress-in-directory/

Notamment en modifiant cela :

Change the following and save the file. Change the line that says:require dirname( __FILE__ ) . '/wp-blog-header.php';to the following, using your directory name for the WordPress core files: require dirname( __FILE__ ) . '/wordpress/wp-blog-header.php';

=> Mais en ayant des problèmes; j'ai remis à l'initial : require dirname( __FILE__ ) . '/wp-blog-header.php';

Pour les sauvegardes, j'en ai avec le plugin All-in-One WP Migration
Il faut que je regarde pour la partie dossier.
 
Dernière édition:
WRInaute occasionnel
@uniketou :

Est ce que tu as un .htaccess dans le dossier wordpress ?

Si oui, quel est son contenu ?

À la racine web/ tu devrais avoir un .htaccess avec seulement :

Code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteRule ^(/)?$ wordpress/index.php [L]
</IfModule>

Mais, il me semble que le .htaccess "spécial wordpress" devrait être dans le dossier web/wordpress/

Code:
# BEGIN WordPress
# Les directives (lignes) entre « BEGIN WordPress » et « END WordPress » sont générées
# dynamiquement, et doivent être modifiées uniquement via les filtres WordPress.
# Toute modification des directives situées entre ces marqueurs sera surchargée.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
 
Nouveau WRInaute
@eldk

Je n'ai plus de .htaccess dans /wordpress ; je l'avais renommé.

Son contenu :

Code:
# BEGIN WordPress
# Les directives (lignes) entre « BEGIN WordPress » et « END WordPress » sont générées
# dynamiquement, et doivent être modifiées uniquement via les filtres WordPress.
# Toute modification des directives situées entre ces marqueurs sera surchargée.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress


A la racine de Web ; j'ai bien le .htaccess avec :

Code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteRule ^(/)?$ wordpress/index.php [L]
</IfModule>


+ d'autres lignes générées par un plugin pour la sécurité.
 
WRInaute accro
Question toute bête : le mod_rewrite.c est bien activé sur ton serveur ? Vu que ne dis rien concernant tes logs serveur.
 
Nouveau WRInaute
exactement, et quand je change en mnémonique le site ne fonctionne plus ! (il fonctionne seulement en permalink "simple")

Pour le pied de page, je n'ai pas encore trouvé pour avoir les 2 langues...
 
WRInaute occasionnel
Si le serveur est un Apache sur le NAS, vérifier ces informations dans le fichier de conf Apache
- Que le mode Rewrite (mod_rewrite.so) n'est pas commenté
- Que la directive suivante soit présente :
Directory /
Options FollowSymLinks
AllowOverride All
/Directory
 
Nouveau WRInaute
la configuration est OK :

<Directory "/volume1/Web">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>


et le mod_rewrite.so est bien activé
 
Dernière édition:
WRInaute occasionnel
1 - les .htaccess sont bien pris en compte (autrement il n'y aurait pas de redirection de web/ vers web/wordpress/)
2 - c'est seulement la prise en compte des permalinks qui ne fonctionne pas, le mode d'urls simples fonctionne.

Pour vérifier :

se rendre sur : https://brainsecureconsulting.eu/?page_id=36 - page de contact avec url standard

puis sur : https://brainsecureconsulting.eu/contact/ qui doit être le permalink (qui est utilisé comme url de destination des boutons verts des pages) vers l'url standard de la page ci-dessus : erreur 500 (un problème ???, + un second problème : pas de ErrorDocument au niveau de la config Apache).

Pour ma part, je testerai cela :

1 - commentaire de la partie wordpress dans le .htaccess du dossier web/
2 - recréation d'un .htaccess avec la partie wordpress ci-dessus et placé dans le dossier web/wordpress

Tester.

3 - modification du .htaccess du dossier web/wordpress/ avec (https://wordpress.stackexchange.com/a/1003) :

Code:
# BEGIN WordPress
# Les directives (lignes) entre « BEGIN WordPress » et « END WordPress » sont générées
# dynamiquement, et doivent être modifiées uniquement via les filtres WordPress.
# Toute modification des directives situées entre ces marqueurs sera surchargée.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
---  RewriteBase /
+++  RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
----    RewriteRule . /index.php [L]
+++ RewriteRule . /wordpress/index.php [L]
</IfModule>

# END WordPress

PS : avant d'ajouter d'autres plugins ... j'essaierai de résoudre le problème de permalink d'abord.
PS2 : faire une petite pause, et, verifier qu'il n'y a pas de $wordpress qui trainent dans les .htaccess
 
Nouveau WRInaute
1 - commentaire de la partie wordpress dans le .htaccess du dossier web/
=> Fait
2 - recréation d'un .htaccess avec la partie wordpress ci-dessus et placé dans le dossier web/wordpress
=> Fait

Tester.
=> Permalien simple : OK
=> Permalien "titre de publication" : KO (Erreur 500)

3 - modification du .htaccess du dossier web/wordpress/ avec (https://wordpress.stackexchange.com/a/1003) :
=> Permalien simple : OK
=> Permalien "titre de publication" : KO (Erreur 500)


Il y a un $wordpress dans le /Web/.htaccess :

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteRule ^(/)?$ wordpress/index.php [L]
</IfModule>
 
WRInaute occasionnel
Il y a un $wordpress dans le /Web/.htaccess :

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?brainsecureconsulting.eu$
RewriteRule ^(/)?$ wordpress/index.php [L]
</IfModule>

Enlève le $ de :

Code:
--- RewriteRule ^(.*)$ /$wordpress/$1
+++ RewriteRule ^(.*)$ /wordpress/$1
 
Nouveau WRInaute
ça fonctionne !!!!! :) :) :)

un Grand Merci @eldk !!!!! Si tu as un Paypal ou autre, ça sera avec plaisir de te donner quelque chose ;)

et merci à tous les autres qui on contribuer :)
 
Nouveau WRInaute
Oui, elle est dans le menu "composition".

Il faut que je regarde comment faire pour avoir plusieurs langues.
 
Discussions similaires
Haut