web-dev-qa-db-fra.com

Impossible d'accéder aux dossiers du même niveau que l'installation de wordpress

J'ai la structure suivante

www/
  .htaccess
  /website1
  /website2
  /uploads/foo.pdf
  /websiteWP
    .htaccess

.htacces dans la racine (www/.htaccess)

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{HTTP_Host} ^(www.)?foo.com$

RewriteCond %{REQUEST_URI} !^/website1/
RewriteCond %{REQUEST_URI} !^/website2/
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteCond %{REQUEST_URI} !^/websiteWP/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /websiteWP/$1

RewriteCond %{HTTP_Host} ^(www.)?foo.com$
RewriteRule ^(/)?$ websiteWP/index.php [L] 
</IfModule>

.htacces dans l'installation wordpress (www/websiteWP/.htaccess)

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

Dans Wordpress, en cliquant sur le lien https://www.foo.com/uploads/some-pdf.pdf , le chargement sera infini, essayer de charger le contenu (cette réaction est due au thème, je suppose que d'autres peuvent avoir un 404), ou parfois combiner la moitié wordpress avec la moitié page "intégrée" à distance.

Mais aller au pdf de l'extérieur du site (coller dans la boîte de recherche) fonctionnera.

Remarque:

URL Wordpress: https://www.foo.com/websiteWP

URL du site Web: https://www.foo.com

Impossible de trouver l'échec du .htaccess.

Déjà vérifié tous les threads disponibles dans stackoverflow et wordpress stackexchange.

1
Qu4k3

Les fichiers .htaccess que vous avez publiés ne permettent pas de comprendre pourquoi vous ne pouvez pas accéder à des fichiers/dossiers en dehors de votre installation WordPress (dans le sous-répertoire /websiteWP). En fait, vous ne devriez pas avoir besoin d'ajouter des exceptions spécifiques pour accéder aux fichiers physiques, car ces directives ne devraient pas s'appliquer aux fichiers physiques.

Cependant, vos fichiers .htaccess sont mal configurés ...

Si l'installation WordPress se trouve dans le répertoire /websiteWP, le fichier /websiteWP/.htaccess (dans le chemin de votre installation WordPress) est incorrect, car il achemine toutes les demandes vers /index.php - c'est le fichier index.php situé à la racine du document (le répertoire parent, je suppose). , pas le contrôleur frontal WordPress qui devrait être dans le même répertoire, c.-à-d. /websiteWP/index.php).

Cependant, je suppose que /index.php (dans la racine du document) n’existe pas (sinon votre site WordPress ne fonctionnera pas). Les directives .htaccess dans le fichier racine .htaccess réécrivent ensuite la demande dans le /websiteWP/index.php contrôleur frontal WordPress! C'est un travail supplémentaire et inutile.

Vous devriez changer le fichier /websiteWP/.htaccess pour lire:

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

Remarque J'ai supprimé la directive RewriteBase et le préfixe slash de la substitution RewriteRule, en remplaçant /index.php (relatif à la racine) par index.php (relatif).

Ensuite, le fichier racine .htaccess n'est pas requis du tout.

0
MrWhite