it-swarm.com.de

wordpress htaccess hijackt meine .mp4-Dateien

Ich verwende WordPress 3.2RC2 Multisite.

Ich habe ein paar MP4-Videos in das Stammverzeichnis meiner Domain eingefügt, damit ich einige grundlegende Tests mit dem JW-Player ausführen kann.

Wenn ich versuche, auf die URL des MP4-Videos zuzugreifen, bekomme ich irgendwie eine WordPress 404-Seite. Dies verursacht auch Fehler im JW-Player, die besagen, dass entweder die Datei nicht gefunden wurde oder der Zugriff verweigert wurde. Berechtigungen sind 644 für die mp4-Dateien, und der Eigentümer/die Gruppe ist korrekt.

Warum passiert das und wie behebe ich es, damit WordPress nicht mehr mit meinen mp4-Dateien herumspielt?

Außerdem: Kann jemand bitte den mp4-Tag hinzufügen, ich habe noch nicht genug Repräsentanten, um dies zu tun.

Hier ist meine htaccess-Datei:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

AddType video/ogg  .ogv
AddType video/mp4  .mp4
AddType video/webm .webm

Bearbeiten Wenn ich den WordPress-Medien-Uploader verwende, kann ich problemlos auf die mp4-Videos zugreifen. Ich kann sie einfach nirgendwo anders auf dem Server platzieren, was ein Problem darstellt.

Hat jemand weitere Ideen, warum WordPress mit meinen mp4s schraubt, wenn sie sich in anderen Verzeichnissen oder sogar im Stammverzeichnis befinden?

2
shawn

Ein fehlender MIME-Typ sollte keine 404-Seite verursachen, aber der AddType muss in <IfModule mod_mime.c>-Tags eingeschlossen werden.

<IfModule mod_mime.c>
    AddType video/mp4 .mp4 .m4v
    AddType video/mpeg .mpeg .mpg .mpe
    AddType video/asf .asf .asx .wax .wmv .wmx
    AddType video/avi .avi
    AddType video/quicktime .mov .qt
    AddType audio/ogg .ogg
</IfModule>

Ich verwende JW Player auf einer Multisite und musste absolute URLs verwenden, um auf den Player und die Datei zuzugreifen. Ich habe in meinem Site-Stammverzeichnis einen Ordner erstellt, der den Player und die Dateien enthielt. Anschließend habe ich eine Funktion zum Anzeigen des Videos geschrieben und das swfobject mit wp_enqueue_script in die Warteschlange gestellt.

 add_action( 'template_redirect', 'load_swf_object' );
 function load_swf_object() {
    wp_enqueue_script('swf_object', '/jw/swfobject.js');
}

function c3m_play_the_video() {  
 echo "<div id='front-vid'>
        <div id='videospace'>This text will be replaced</div>
        <script type='text/javascript'>
      var so = new SWFObject('http://example.com/jw/player.swf','mpl','520','350','9');
      so.addParam('allowfullscreen','true');
      so.addParam('allowscriptaccess','always');
      so.addParam('wmode','opaque');
      so.addVariable('file','http://example.com/jw/video/video_name.mp4');
      so.addVariable('image','http://example.com/jw/video/video-face.jpg');
      so.addVariable('skin','http://example.com/jw/skins/glow.Zip');
      so.addVariable('bufferlength','3');
      so.write('videospace');
      </script>
        </div>";
}
1
Chris_O

Haben Sie die richtige Großschreibung für den Dateinamen?

Diese Regeln besagen im Grunde, dass wenn die Datei existiert, sie bereitgestellt wird, anstatt zu den WordPress-Regeln überzugehen:

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

Das heißt, wenn es sich bei der angeforderten Datei um eine vorhandene Datei handelt oder wenn es sich um ein vorhandenes Verzeichnis handelt, führen Sie kein erneutes Schreiben durch und beenden Sie die Verarbeitung ([L] = Letzte Regel).

Der Dateiname muss also in gewisser Weise falsch sein, denn wenn die Datei mit dem angegebenen Namen existiert, wird sie durch diese Regel gezwungen, den Dateinamen ordnungsgemäß bereitzustellen.

0
Otto