it-swarm.com.de

WordPress mod_rewrite bricht meine andere mod_rewrite-Regel ab/überschreibt sie

in /www/ habe ich eine .htaccess Datei mit:

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

Dieser Code funktioniert einwandfrei, bis ich .less-Dateien in /www/blog/ anfordere, wo sich WordPress befindet, und eine eigene .htaccess-Datei habe, die die standardmäßigen hübschen Permalinks mod_rewrite enthält:

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

Wenn ich den mod_rewrite-Code von WordPress in das Stammverzeichnis verschiebe und ihn vor meinem eigenen mod_rewrite platziere, funktioniert alles wie erwartet:

# 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

Das Ärgernis hier ist, dass jede Änderung in WordPress, die mit Permalinks zu tun hat, bedeutet, dass ich daran denken muss, den .htaccess-Code aus /www/blog/ herauszuschneiden und ihn in das Stammverzeichnis zu verschieben.

Gibt es eine Möglichkeit, mein mod_rewrite zu verbessern, damit WordPress es nicht überschreibt, und ich kann einfach alles dort lassen, wo es natürlich platziert ist? Ich würde auch lieber nicht zwei Instanzen meiner Regel in root und nach WordPress haben müssen. Außerdem sollten die mod_rewrite-Regeln von WordPress geändert werden, da durch die Aktualisierung der Permalink-Einstellungen diese einfach überschrieben werden.

2
user19606

Eine schnelle Lösung könnte darin bestehen, die Berechtigungen für Ihre .htaccess-Datei zu ändern. Wenn Sie also die Einstellungen in Wordpress ändern, wird Ihnen angezeigt, auf was Sie Ihren .htaccess manuell ändern müssen, da er keinen direkten Schreibzugriff mehr auf die Datei hat.

2
stealthyninja