Php den rewrited (mod_rewrite) dosyalarını okuma

3 Cevap php

Eğer mod_rewrite kuralları yoluyla yeniden yazılmıştır (app olarak aynı sunucu üzerinde barındırılan) bir dosyaya sadece URL varsayarsak.

Nasıl özgün URL'sini bina için kullanılan bir. Htaccess dosyası veya yeniden yazma kurallarına doğrudan erişim kalmadan PHP ile bu dosyanın içeriğini okumak istiyorsunuz?

Ben, "src" öznitelik kümesi tüm komut dosyası etiketlerini ayıklamak hedef dosyanın içeriğini almak, büyük bir javascript dosyasının içine hepsini birleştirmek, onu küçültmek ve sonra bunun yerine bir hizmet vermeye çalışıyorum.

Sorun file_get_contents aracılığıyla tüm dosyaları okuma sayfasını yavaşlatmak gibi görünüyor, bu yüzden alternatifler bakıyordu ve ben bir şekilde arka planda diğer istekleri oluşturmak zorunda kalmadan dosya sisteminden dosyaları doğrudan okumak mümkün olsaydı, ancak bunu yapmak için, ben dosyalarının yolunu bulmak zorunda kalacak ve bazı yeniden yazılmış URL'ler üzerinden erişilir.

3 Cevap

Sadece get the results PHP'nin yürütme kendisi, orijinal PHP sanki bunu içeremez.

Eğer üzerinde fopen sarmalayıcılar var ise, bu require kullanarak kadar kolay, include veya file_get_contents yeniden yazılmış URL. Seçenekleri sonuç için HTTP isteği oluşturmak için aksi takdirde size fsockopen ve curl var.

Eğer istek işlenir nasıl olacağını söyleyemem gibi, mümkün olan tek çözüm, bu sunucuya bir HTTP isteği göndermek için. Ama bu size sadece o dosya / script çıkışını alabilirsiniz.

PHP apache geride bırakır ve fopen-benzeri veya dahil-vb gibi kullanarak dosya sistemi düzeyinde dosya erişimi .. işlevleri vardır. Bu işlevler apache değil OS dosya erişim rutinlerini kullanmak ancak çünkü Rewrite modülü, bu erişim için çalışmaz.

Bunu yapmanın bir yolu, ama php-script içinde aynı uygulama kuralları URL yeniden yazma sen. Htaccess var gibi apache yeniden yazma ve php dosya erişim birbirleri hakkında hiçbir şey bilmek ve web uygulamasının comletely farklı katmanlar üzerinde olduğu için, .

EDIT SONRA: tek yolu - php script sizin kuralları yeniden imlement ve (modülü yeniden değil) php aracılığıyla URL'leri ayrıştırma sonra dosya sistemi php erişimini kullanabilir.