J'ai une autre application PHP dans un dossier nommé app
dans mon installation Wordpress et je dois désactiver toutes les règles de réécriture Wordpress pour ce dossier et son contenu. Ainsi, lorsque je vais sur www.domain.com/app
, je reçois ma page d’application, au lieu de la page standard Wordpress 404.
Je sais que c’est une règle de base pour la réécriture d’Apache. J’ai cherché cela, j’ai essayé certaines choses et je n’ai pas bien fonctionné.
Presque oublié, je dois le faire uniquement en éditant le fichier htaccess de Wordpress. Et l'application a son propre fichier htaccess.
Merci.
EDIT: contenu 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>
EDIT: Application htaccess
DirectoryIndex index.php
<FilesMatch "\.(php|inc)$">
Order allow,deny
deny from all
</FilesMatch>
<FilesMatch "(index.php|download.php)$">
Order allow,deny
allow from all
</FilesMatch>
Ces règles ne font pas grand chose, elles refusent fondamentalement l'accès à tous les types de fichiers PHP
et INC
, à l'exception de index.php
et download.php
. Quels sont ceux auxquels l'utilisateur doit accéder, les autres sont des classes utilisées en interne par PHP
.
EDIT 3: Résolution:
En fin de compte, Wordpress htaccess
ou l’application ne posait pas problème, après avoir signalé les erreurs sur le serveur d’hébergement distant, PHP avait signalé un fichier corrompu; une fois remplacés, tous commençaient à bien fonctionner. Merci à Wietse Venema pour cette suggestion.
Le fichier .htaccess par défaut supportera déjà le comportement souhaité;
# 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
La magie est dans les lignes qui commencent parRewriteCond. Ils demandent à Apache d'appliquer la règle RewriteRule . /index.php [L]
(ce qui signifie "toute URL ira à index.php"), uniquement lorsque l'URL n'est pas un fichier existant !-f
ou un répertoire existant !-d
.
Donc, cela devrait fonctionner par défaut. Les règles de réécriture Wordpress ne s'appliquent pas lorsque vous essayez de visiter un fichier déjà existant.