Impossible d'accéder aux sous-répertoires autres que Wordpress car wordpress les remplace par une erreur 404

30

Je fais référence à cette question précédemment posée et à laquelle il n’a pas répondu de manière appropriée: Wordpress remplaçant les sous-répertoires réels et aussi Les pages / codes non "Wordpress" obtiennent une erreur 404

J'ai le même problème et j'ai essayé presque tout ce que j'ai trouvé sur le net. C'est définitivement lié au fait d'avoir des permaliens activés dans le wordpress. Cependant, j'ai mis un nouveau fichier .htaccess dans le sous-répertoire avec:

RewriteEngine off

et le problème existe toujours. Même si je supprime complètement le fichier wordpress .htaccess, le problème persiste.

J'ai aussi essayé d'autres solutions suggérées telles que ErrorDocument 401 "Accès non autorisé" et ErrorDocument 404 "Accès non autorisé" et Rediriger 301 / mysubdirectory enlace à divers endroits, en vain.

Quelqu'un peut-il s'il vous plaît offrir une autre solution? La seule façon de résoudre ce problème est de désactiver les liens permanents, mais nous devons les activer.

Merci,

Nicole

    
posée Nicole 16.06.2011 - 09:54
la source

8 réponses

27

Je suppose que vous avez mis WordPress à la racine de votre site et que les répertoires externes sont également à la racine de votre site. La raison en est que les fichiers .htaccess suivent une hiérarchie. Quelles que soient les directives figurant dans le fichier .htaccess de niveau supérieur, s’écoulent vers le bas et s’appliquent à tous les répertoires situés en dessous.

Si tel est le cas, vous pouvez effectuer l'une des opérations suivantes:

  1. Déplacez votre WordPress dans son propre répertoire. Voir: enlace . Si vous déplacez WordPress dans son propre répertoire de sorte qu'il se trouve au même niveau que les autres répertoires dans la hiérarchie des répertoires de votre serveur, les règles de réécriture de WordPress ne peuvent pas affecter les autres répertoires.

  2. RewriteEngine Off - cela fonctionnerait normalement. Si cela ne fonctionne pas, vérifiez que vous n'utilisez pas de paramètre DNS générique. Si vous avez un enregistrement de nom d'hôte * générique pointant sur votre serveur Web dans vos paramètres DNS, cela peut causer des dégâts avec .htaccess et les sous-domaines.

  3. Dans le fichier .htaccess situé à la racine de votre site, ajoutez les informations suivantes AU-DESSUS des directives .htaccess de WordPress:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    </IfModule>
    

L'un d'entre eux devrait fonctionner pour vous.

    
réponse donnée Elpie 17.06.2011 - 16:33
la source
17

Cela a fonctionné pour moi dans le passé pour une situation similaire:

Ajoutez ceci au-dessus de .htaccess

ErrorDocument 401 default
    
réponse donnée mike23 16.06.2011 - 11:39
la source
3

quand je copie mes fichiers sur le même serveur mais avec un dossier de sous-répertoire différent, donc quand j’essaie d’accéder à mes pages, index.php fonctionne correctement, mais les autres pages ne le sont pas et me donnent une erreur 404. Désolé pour mon mauvais anglais !!

Je viens de regarder dans mon htaccess l'original:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

et mettez le nouveau avec

# BEGIN WordPress

RewriteEngine On
RewriteBase /subdirectoryfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryfolder/index.php [L]

# END WordPress
    
réponse donnée lizette 13.09.2012 - 13:14
la source
3

Je vois que ce fil est vieux de quelques mois, mais au cas où vous ne l'auriez jamais fait fonctionner!

J'avais un problème similaire, mais mon problème était que l'installation de wordpress était située dans le sous-répertoire, ce qui empêchait l'accès des URL aux dossiers situés dans la racine (en dehors du répertoire d'installation de WP), mais uniquement lorsque les liens permanents étaient activés. Pour résoudre ce problème, j'ai copié index.php et .htaccess (copie non déplacée) du sous-répertoire où se trouve l'installation de WP et les ai placés à la fois dans le répertoire racine public_html (ou dans tout autre sous-répertoire auquel vous essayez d'accéder en dehors de l'installation de WP). annuaire). Le fichier .htaccess a déjà les conditions de réécriture pour les permaliens:

RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Activez les liens permanents pour l'actualisation, ce qui a résolu tous les problèmes. Assurez-vous également que vos autorisations pour les dossiers racine sont correctement définies, car cela m'a déjà causé des problèmes.

    
réponse donnée Kirsten Douglas 25.05.2012 - 20:46
la source
2

Si vous obtenez toujours des 404 avec le htaccess désactivé et que vous avez vérifié les chemins et que vous savez que les fichiers sont là, il ne vous reste plus que ces trois ...

Options ...

  1. Le serveur exécute probablement un système d'exploitation sensible à la casse. Ce qui signifie que si vous tapez dans un chemin sans utiliser les caractères exacts, vous ne pourrez tout simplement pas le mettre en majuscule.
  2. Autorisations: les autorisations sur le fichier, le dossier ou le dossier parent sont peut-être erronées. Essayez de modifier les autorisations sur 755 pour les fichiers, les dossiers et les dossiers parents. Si vous avez un accès ssh (terminal) à celui-ci, allez à votre racine et exécutez ce "chmod -R 755 mydir" et cela définira récursivement les permissions pour tous.
  3. Si vous rencontrez toujours un problème après tout cela, vous avez un problème de configuration du serveur (probablement Apache). Vous devrez en discuter avec votre fournisseur d’hébergement.

Si cela ne fonctionne pas, vous avez besoin d'un nouvel hôte. Je recommande hostmonster.com pour l'hébergement bon marché qui offre un excellent support et offre un accès SSH. Je les utilise, coûte environ 5 $ par mois. Si vous avez besoin de quelque chose qui soit plus robuste et évolutif, mais qui présente toujours un bon prix, je vous recommande mediatemple.net. Ils offrent un hébergement en nuage évolutif à partir de 20 $ par mois. Bien que je n’irais avec la deuxième option que si vous vous attendiez à une augmentation spectaculaire du trafic ou si vous avez déjà un trafic très important (je parle de 500 à plus de 1000 par heure).

    
réponse donnée pthurmond 17.06.2011 - 16:44
la source
2

Après m'être presque arraché les cheveux en éditant htaccess, j'ai finalement trouvé une solution qui fonctionnera sous WordPress.

J'ai eu ce problème après avoir installé un script codeiginter sur le même répertoire racine que WordPress est installé.

Après avoir essayé toutes les astuces énumérées ici, il restait encore 404 erreurs sur les pages associées au nouveau script.

J'ai remarqué que le htaccess de WordPress recouvrait le htaccess du script. J'ai également noté que d'autres installations WordPress dans le même répertoire n'avaient pas cette erreur 404.

J'ai simplement adopté le htaccess de la nouvelle installation de WordPress dans le même répertoire de serveur et je l'ai ajouté dans le dossier où se trouve mon script. Voici à quoi cela ressemble:

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

Remplacez sous-répertoire par le nom de votre répertoire et placez ce fichier htaccess dans le dossier où se trouve votre script.

Exemple: si le site est installé ici

public_html/

et le nouveau dossier est situé

'public_html/example'

copiez le fichier htaccess ci-dessus et enregistrez-le dans le dossier "exemple". Cela devrait fonctionner.

    
réponse donnée NJENGAH 10.12.2015 - 14:59
la source
0

Vous devriez pouvoir ajouter une directive RewriteCond qui garantira que les règles WordPress sont ignorées pour les demandes dans votre sous-dossier.

RewriteCond %{REQUEST_URI} !^/mysubdirectory
# rest of WordPress rewrite rules

Cependant, vous dites que même avec non WordPress .htaccess vous rencontrez le problème? Quel est le contenu de votre sous-répertoire .htaccess ?

    
réponse donnée TheDeadMedic 16.06.2011 - 10:58
la source
0

J'ai examiné les réponses ici à plusieurs reprises, car je rencontrais un problème similaire. J'ai des fichiers dans un sous-répertoire qui génèrent une erreur 404 lorsque j'essaie d'y accéder. Tout le contenu .htaccess n’a pas pu être corrigé, comme le dit Kirsten Douglas, Wordpress fait déjà le travail.

Ma solution

J'ai trouvé ce article après avoir vérifié le error_log sur le serveur. Je recevais un message sur le mauvais identifiant pour les scripts. J’ai également remarqué que le 404 n’avait pas été lancé à cause du fichier, mais parce que le serveur ne pouvait pas servir un fichier 500.html, c’est-à-dire que j'avais une erreur 500.

Il s’avère que j’ai créé des fichiers en tant que root et que je devais en changer le propriétaire en propriétaire du fichier Web.

J'espère que cela aidera les autres qui ont eu le même problème!

    
réponse donnée Dan 02.10.2013 - 09:54
la source

Lire d'autres questions sur les étiquettes