2 Stimmen

Htaccess-Regel für verschobene PDF-Dateien?

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:

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

1voto

Jon Lin Punkte 139414

Funktioniert es, wenn Sie Ihren Abschnitt so ändern?

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/
RewriteRule ([^/]*\.(pdf|zip|xls))$ /wp-content/uploads/$1 [NC,L,R=301] 

Die erste Bedingung überprüft, ob die Anforderung für eine Datei gilt, die nicht existiert, die zweite ist sicherzustellen, dass wir noch nicht zum Upload-Verzeichnis weitergeleitet haben (falls es auch dort nicht existiert), und die Regel passt entweder zu pdf, zip oder xls.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X