web-dev-qa-db-fra.com

WordPress mod_rewrite annule/remplace mon autre règle mod_rewrite

dans /www/ j'ai un fichier .htaccess contenant:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^([^.]*\.less)$ compilers/lessphp.php?file=$1 [R,QSA,L]
</ifModule>

Ce code fonctionne bien, jusqu'à ce que je demande des fichiers .less dans /www/blog/, où se trouve WordPress, et possède son propre fichier .htaccess qui contient les jolies permaliens standard mod_rewrite:

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

Si je déplace le code mod_rewrite de WordPress vers la racine et le place avant mon propre mod_rewrite, tout fonctionne comme prévu:

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

# BEGIN LESSPHP
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^([^.]*\.less)$ compilers/lessphp.php?file=$1 [R,QSA,L]
</ifModule>
# END LESSPHP

La gêne ici, est-ce que toute modification dans WordPress à faire avec les permaliens signifie que je dois me rappeler de couper le code .htaccess de /www/blog/ et de le déplacer à la racine.

Existe-t-il un moyen d'améliorer mon mod_rewrite afin que WordPress ne l'écrase pas et que je puisse simplement tout laisser là où il est placé? Je préférerais également ne pas avoir deux instances de ma règle à la fois sous root et après WordPress. En outre, les règles mod_rewrite de WordPress doivent être modifiées, car la mise à jour des paramètres de permalien les écrasera simplement.

2
user19606

Une solution rapide pourrait consister à modifier les autorisations sur votre fichier .htaccess. Ainsi, si vous modifiez les paramètres dans Wordpress, il vous indiquera ce dont vous avez besoin pour modifier manuellement votre .htaccess car il n'aura plus d'accès direct en écriture au fichier.

2
stealthyninja