! preg_match("/^[a-z0-9:_\/-]+$/i", $str)
kodunu
! preg_match("/^[a-z0-9:_\-|]+$/i", $str)
şeklinde değiştirip deneyebilir misiniz?
http://stackoverflow.com/a/19423444
Ufak bir hatırlatma; core dosyaların değiştirilmesi hiçbir framework ya da script için önerilmeyen bir şey. Güncelleme hatalarını önlemek için.