Question

J'ai eu quelques problèmes avec mon installation Wordpress me permettant aux sous-répertoires d'accès, en particulier une installation à CodeIgniter mydomain.com/codeigniter. Je sais que techniquement il devrait fonctionner très bien comme ça, et reconnaître les dossiers car ils sont créés. Toutefois, cela ne se produit pas. Je soupçonne qu'il a quelque chose à voir avec un plug-in, mais je l'ai essayé de désactiver tous et le problème se produit (me dirige vers la page Wordpress 404) encore.

Je l'ai trouvé une solution dans l'intervalle, cependant. Si je crée un sous-domaine, quelque chose change et tout fonctionne comme il se doit, l'accès au dossier à la fois par le chemin direct et via le nom du sous-domaine.

Toute aide? J'ai essayé toutes sortes de choses amusantes avec mes fichiers .htaccess dans les deux répertoires, mais les changer ne fait rien.

Mise à jour: Voici le .htaccess Wordpress dans le dossier racine:

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?codeigniter/
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Et le dossier du CodeIgniter dans le répertoire / CodeIgniter / sous-répertoire.

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /codeigniter
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
Était-ce utile?

La solution

Même si les fichiers statiques et des répertoires fonctionnent avec une installation de wordpress mod_rewrite'd dans la racine des serveurs, vous devrez peut-être exclure votre sous-répertoire CodeIgniter de cette gamme mod_rewrite.

Vous pouvez le faire en plaçant un fichier .htaccess supplémentaire dans le répertoire CodeIgniter et désactiver mod_rewrite là-dedans:

<IfModule mod_rewrite.c> 
RewriteEngine off
</IfModule>

Related: apache - Désactiver mod_rewrite pour sous-répertoire

fait normalement le travail pour moi. Mais il peut être moins trivial dans le cas où ce sous-répertoire a besoin d'une configuration de mod_rewrite sur son propre (comme certains ont besoin de cadres PHP).

Pour comprendre comment fonctionne la configuration apache, s'il vous plaît voir fichiers de configuration (Apache manuel) et directive AllowOverride (Apache Manuel) .

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top