Kısa cevap
example.com/bob/files/picture.jpg, bir WordPress Multisite kurulumundaki görüntüler için tercih edilen, standart URL'dir . URL'de bulunan iki URL blogs.dir
aslında aynıdır ve her ikisi de dosya sistemi yapısından yararlanır. 'Bob' yolu, alt alan yüklemesi yerine alt dizin yüklemesi yaptığınız için var. Diğer sitelerinize bağlı olarak başka yollar da vardır, örneğin example.com/fred/wp-content/blogs.dir/5/files/pictures.jpg. Aksi takdirde, başka yol yoktur.
Uzun cevap
Bu süreç hakkında açıklayabileceğimiz çok şey var ve aradığınız ayrıntı seviyesinden% 100 emin değilim, bu yüzden burada temel bilgileri vereceğim.
WordPress Multisite blog_id
, işleri düzenli tutmak ve farklı sitelerin dosyalarını ayırmak için dosyaları ("/" sonra "5" / "/blogs.dir/") ile depolar. Bu dizin yapısının herkese açık olması amaçlanmamıştır. WordPress, yönlendirmek ^files/(.+)
için yeniden yazma kurallarını kullanır wp-includes/ms-files.php?file=$1
ve ardından wp-includes/ms-files.php
görüntüyü ve / veya bazı yardımcı başlıklarını işler ve çıktılar. Bunun birkaç avantajı vardır:
- Güvenlik açısından, daha az bilgi her zaman daha iyidir. "wp-content / blogs.dir / 5" küçük bir TMI - WordPress Multisite çalıştırdığınızı ve bunun
blog_id
5 olduğunu söylüyor .
- URL yapısı, tek site kurulumuyla aynıdır. Bir siteyi Multisite kurulumundan kendi başına taşıyacak olsanız, veritabanındaki bu referansları veya dış referanslar için eski yolları 301 güncellemeniz gerekmez.
- Sen kamusal erişim dışına veya dosyaları dizinine taşıyabilirsiniz
deny from all
aracılığıyla .htaccess
istemediğiniz eğer öyleyse, örneğin, insanlar orijinal resim boyutlarını erişemez.
- Belirli dosyalara erişim denetimi ekleyebilirsiniz
Bir ana dezavantajı var, bu da görüntüler / dosyaların PHP'den geçmesi (ve hatta birkaç MySQL sorgusu gerektirmesi), bu yüzden daha fazla kaynak gerektiriyor. Yüklü bir önbellek eklentiniz varsa, ek kaynaklar ihmal edilebilir olmalıdır.
Filtrelerle ilgili olarak, süreçteki hiçbir şeye bir nedenden dolayı kolayca filtre uygulayamazsınız: ne mu-eklentileri , eklentileri, ya da temanız yüklenmez *. Yapabileceğiniz en iyi şey wp-config.php dosyasındaki sabitleri geçersiz kılmaktır. Geçersiz kılabileceğiniz en yararlı / alakalı sabitler şunlardır:
if ( !defined( 'UPLOADBLOGSDIR' ) )
define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' );
if ( !defined( 'UPLOADS' ) ) {
// Uploads dir relative to ABSPATH
define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" );
if ( 'wp-content/blogs.dir' == UPLOADBLOGSDIR )
define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" );
}
/**
* Optional support for X-Sendfile header
*/
if ( !defined( 'WPMU_SENDFILE' ) )
define( 'WPMU_SENDFILE', false );
/**
* Optional support for X-Accel-Redirect header
*/
if ( !defined( 'WPMU_ACCEL_REDIRECT' ) )
define( 'WPMU_ACCEL_REDIRECT', false );
* Eklentiler yüklenmese de, drop'lar eklenir . Bu nedenle, standart eklentileri kullanamasanız da, WordPress, hassas dosyalara erişim kontrolü eklemek gibi (yukarıda belirtildiği gibi) ihtiyacınız olan her şeyi yapmak için temeli atmaktadır. Bu sunrise.php
tür bir kod eklemek için eklenti iyi bir yer olabilir.