htaccess désactive les règles de réécriture de Wordpress pour le dossier et son contenu

4

J'ai une autre application PHP dans un dossier nommé app à l'intérieur de 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 , j'obtiens ma page d'application au lieu de la page standard Wordpress 404.

Je sais que ce sont des règles de base pour la réécriture d’apache. J’ai cherché cela, j’ai essayé certaines choses et je n’avais 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 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 de problème. Après avoir signalé les erreurs sur le serveur d’hébergement distant, PHP a signalé un fichier corrompu. Une fois remplacé, tout a bien fonctionné. Merci à Wietse Venema pour cette suggestion.

    
posée Fábio Antunes 04.03.2011 - 16:18

1 réponse

5

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 réside dans les lignes commençant par RewriteCond . 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 .

Cela devrait donc 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.

    
réponse donnée Wietse Venema 04.03.2011 - 16:55

Lire d'autres questions sur les étiquettes