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.
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.