Kek PHP eklenti / img / diectory yerine 404 eksik yöntemi atar

2 Cevap php

Ben yazdım Kek PHP eklentisi var. Eklentiye dizin sayfası (/ keyedit / veya / keyedit / index) bazı dinamik kod kadar hizmet böylece eklenti kendi denetleyicisi vardır.

Images / keyedit / img / talep edildiğinde düzgün kadar servis edilmektedir. Ama görüntü Kek / img / keyedit_controller.php bir yöntemdir ve bir eksik bir yöntem hatası atar düşünüyor yoksa. Bu kadar kötü olmazdı, ama aynı zamanda her şeyi kırma, oturum çerezi siler.

Dosya yerine denetleyici koduna düşen img / / eksik olduğunda nasıl ben sadece bir 404 dönmek için Cake söyleyebilir?

Ben sadece bir 404 döndüren bir img () yöntemi ekleyebilirsiniz varsayalım, ama bu bir kludge gibi görünüyor. (ETA: hala oturum tanımlama siler Yargılanan)

2 Cevap

You probably have debug > 0 in app/config/core.php. When debug is 0, missing method is the same as 404.

Ayrıca hataları davranışlarını değiştirmek için app / app_error.php oluşturabilirsiniz.

Cake uses an .htaccess file Kek Bu gibi kullanabilirsiniz içine bir şey orijinal oldukça URL'leri yeniden yazmak için:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

Eğer talep ediyoruz gerçek bir dosya değilse bu satırları URL sadece (yeniden yazarak) Cake geçilecek emin olun. Dosyası eksik Ancak, bu kurallar belli ki geçerli değildir, bu yüzden mutlu yanı sıra Cake onu geçmek olacak.

Ne yapabilirsiniz ki know Kek gerekmez herhangi dizinleri dışlamak için bir koşul ekleyin. Örneğin

RewriteCond %{REQUEST_URI} !^/(keyedit/img|other_folder)/

Alternatif olarak, kendi dosya uzantılarına göre dosyaları hariç, gibi pek yapabilirsiniz:

RewriteCond %{REQUEST_URI} !\.(js|ico|gif|jpg|png|css)$

Yoksa belirli dizinleri veya dosya uzantılarını dışlamak için RewriteRule kendisi düzenli ifadeyi düzenleyebilirsiniz ...