Ich habe eine .htaccess-Datei, die nicht so funktioniert, wie ich es mir vorstelle. Ich habe eine WP-Site, bei der die Eigentümer beschlossen haben, den Basispfad für die Blogeinträge auf /blog/ zu verschieben, sodass alle Beiträge jetzt von Suchmaschinen als 404-Fehler angezeigt werden. Während ich mit den Weiterleitungen für die Beiträge gut zurechtgekommen bin, müssen auch die Datumskategorien wie „/2015/03“ umgeleitet werden. Ich habe eine Regel wie folgt erstellt:
RewriteCond %{REQUEST_URI} ^/(200[1-9]|201[1-9])/(0[1-9]|1[0-2])
RewriteRule (.*) http://www.domain.com/blog/$1
das funktioniert gut aufhttp://htaccess.madewithlove.be/
www.domain.com/2009/05 sollte zu www.domain.com/blog/2009/05 wechseln.
Aber es tut nichts auf der Site. Ich habe eine Entwicklungsversion der Site, an der ich herumbasteln kann, sodass ich testen und Änderungen vornehmen kann, ohne die Live-Site zu beschädigen. Vollständiger mod_rewrite-Abschnitt:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(200[1-9]|201[1-9])/(0[1-9]|1[0-2])/
RewriteRule ^(.*) http://www.domain.com/blog/$1
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Irgendwelche Hinweise? Der Server ist Ubuntu mit Apache2.
Antwort1
„In .htaccess
Dateien“ ^
entspricht dem Anfang dieses Unterverzeichnisses, Sie sollten es also nicht ^/
in Mustern verwenden.
Außerdem 201[1-9]
stimmt Ihr Muster nicht mit 2010 überein.