Ich habe es versucht, wirklich... Ich gebe auf. Wordpress und htaccess... oh der Schmerz.
Die alte statische Website enthält pdf, doc, xls und Zip-Dateien alle im Stammverzeichnis. Ich habe alle Dateien als Mediendateien geladen, damit sie alle im Verzeichnis /wp-content/uploads vorhanden sind.
Ich möchte einfach alle 404-Fehler, die eine .pdf-Datei betreffen, abfangen und sie in das Upload-Verzeichnis umleiten. Sollte einfach sein, aber offensichtlich mache ich etwas falsch. Htaccess hat soooo viele Flags und Einstellungen, dass irgendwas zusammenstoßen muss oder ich einfach nicht "kapieren".
RewriteEngine On
# Falsche Groß- und Kleinschreibung abfangen (muss einen besseren Weg geben?)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)\.JPG$ $1.jpg [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)\.PNG$ $1.png [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)\.GIF$ $1.gif [L,R=301]
# BEGIN WordPress
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
# Beginn meiner Probleme... was mache ich falsch?
RewriteCond %{REQUEST_FILENAME} .*\.pdf [NC]
#RewriteCond %{REQUEST_FILENAME} !\/wp-content\/uploads\/
RewriteRule ([^/]*\.pdf) /wp-content/uploads/$1 [NC,L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([^\/]*.zip) /wp-content/uploads/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([^\/]*.xls) /wp-content/uploads/$1 [L,R=301]
# Für Bonuspunkte, ist das der richtige Weg, dies zu tun? Alte Verweise auf einen alten Ordner abfangen und umleiten?
RedirectMatch 301 /Graphic\sFiles/(.*\.jpg) /wp-content/uploads/$1
RedirectMatch 301 /Graphic\sFiles/(.*\.png) /wp-content/uploads/$1
RedirectMatch 301 /Graphic\sFiles/(.*\.gif) /wp-content/uploads/$1
Ich habe folgende Quellen verwendet:
- http://httpd.apache.org/docs/current/rewrite/flags.html
- http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
- http://httpd.apache.org/docs/current/rewrite/remapping.html#fallback-resource
Es gibt so viele Regeln zu beachten für das, was ich für eine einfache Aufgabe hielt. Ich bin kein htaccess-Guru und werde es nie sein, ich habe jedoch großen Respekt für diejenigen, die es sind!
Vielen Dank im Voraus für jegliche Hinweise, meine Damen und Herren.
Pete