Ben uzun zamandır düşünüyordum şey bazı giriş için arıyorum. Belki ben henüz düşünce değil orada çözümleri vardır, çok genel bir sorundur.
I have a PHP-based CMS.
For each page created in the CMS, the user can upload assets (Files to download, Images, etc.)
Bu varlıklar bir dizinde saklanır, en bir sayfa başına temelinde "/ myproject / Varlıklar", (1 alt = 1 sayfa, örneğin "/ myproject/assets/page19283") diyelim
Kullanıcı CMS (sakla) sayfaları "un-yayımlamak" olabilir. Bir sayfa gizli, ve birileri bu URL'yi ezberlemiş ya da Google veya bir şey geldiği için onu erişmeye çalıştığında zaman, onlar bir "bulunamadı" mesajı alıyorum.
Ancak, varlıkları hala mevcuttur. Kullanıcı bir sayfayı un-yayınlamaktadır zaman, onlar tamamen gitti güven böylece ben de bu korumak istiyorum. (Içeriği aşağı çekmek için mahkeme emirleri gibi adli sorunlarım Çok önemli ... Bunun gibi şeyler olabilir).
En belirgin yolu to store all assets in a secure directory (= web sunucusu tarafından erişilebilir değil), ve kontrol ettikten sonra dosyaları geçer bir PHP "ön kapı" kullanmaktır. Bir proje su geçirmez gerektiğinde bu şu anda gitmek yoludur, ancak PHP yorumlayıcı sitede her küçük resim, senaryo, ve biçembentle çalışır çünkü ben bunu sevmiyorum. Ben daha hızlı bir yol var istiyorum.
CMS taşınabilir ve paylaşılan bir ortamda çalıştırmak mümkün olması gerekiyordu çünkü .htaccess koruma (tüm veya benzer Deny) mükemmel değildir. Ben bile IIS ve diğer web sunucuları üzerinde çalıştırmak istiyorum.
Ben şimdi düşünüyorum en iyi yolu, bu un-yayınlanan olduğunda güvenli bir yere moving belirli sayfanın varlık dizin olduğunu ve yayınlanan olduğunda geri hareket ettirin. Ancak, yönetici kullanıcı bu un-yayınlanmış bile zaman sayfasını görmek mümkün olması gerekir, bu yüzden ben güvenli dizinden bu varlıkları hizmet için var olduğu gerçeği etrafında çalışmak zorunda olacaktır.
Herkes (= hayır bir PHP komut dosyası geçen) ama yine PHP kullanarak erişimi kontrol dosyalara doğrudan Apache erişim sağlayan bir yol düşünebiliyor musunuz? Yapamam.
Ben de most paylaşılan ortamlarda çalıştırmak için muhtemeldir basit. Htaccess çözüm düşünün.