Maksimum sülük uzunluğu var mı?


14

Bir müşteri sadece gerçekten uzun bir bilgi (90 karakter), özel karakterler (kısa çizgiler dışında) vb.

Yönetici arka ucundaki "Önizleme" veya "Bu Yayını Görüntüle" bağlantıları da dahil olmak üzere, bu gönderinin bağlantısına her tıklandığında bir 404 oluşturuldu.

Sülükleri manuel olarak kırptıktan sonra, her şey beklendiği gibi çalıştı. Bu bir "özellik" veya "hata" mı?

EDIT: DB sınırları hakkında konuşan herkes için bir Not.

DB alan sınırına isabet olsaydım, sümüklü böcek kesilirdi. Bir saniye düşünün. Çoğu WP kurulumu durumunda, wp_posts.post_name VARCHAR'dır (200). Diyelim ki birisi 200'den fazla karakter içeren bir başlık yazıyor. Ne oluyor? Slug 200 karaktere kesilir ve wp_posts.post_name içinde saklanır. Birisi içeri giriyor ve tarayıcının adres çubuğuna yayının tam başlığını yazıyor, boşlukları tire ile değiştiriyor değil mi? URL, WordPress tarafından oluşturuluyor ve URL'yi wp_posts.post_name tablosundan alıyor ve bunu yalnızca bağlantı etiketinin href özelliğine koyuyor. Yani orada bir eşitsizlik olmayacak. Bütün DB şey kırmızı bir ringa balığı.

Her durumda, söz konusu bilgi sadece 90 karakterdir, bu yüzden DB sınırları ile ilgisi yoktur.

Yeniden yazma konusunda bilinen herhangi bir sınırlama var mı?


1
İlgili wordpress tablosunda / sütununda tanımlanan herhangi bir wordpress alanının veri tipini (ve varsa maksimum uzunluğunu) kontrol etmek için MySQL çalışma tezgahı gibi ücretsiz bir araç kullanabilirsiniz
Jordi Cabot 23:12

Yanıtlar:


11

Wp_posts tablo yapısı nedeniyle, post_name sütununun uzunluğu (sümüklü böcek sütunu) 200 karaktere eşittir.


1
@TomAuger & Eugene - sorunu teyit edebilir misiniz, çünkü Tom sülükte 90 karakter olduğunu söylüyor. Sınırın 200 olduğunu biliyorum, ancak bu ev URL'sini saymıyor, değil mi?
brasofilo

@Eugene, kesinlikle. 200 karakter. Benim bilgi tam olarak 90 karakter oldu, bu yüzden DB sınırı isabet etmiyoruz.
Tom Auger

3

Kendi kendine bir sınır yok sanırım ama salyangozlar için veritabanındaki alanın özelliği bir maksimum uzunluğa ayarlanabilir.

Veritabanını kontrol edin!


@ İndirmeyi reddeden: Cevap doğru . Bu nedenle yeniden oy verdim.
kaiser

0

Muhtemelen sorun bile doğrudan WordPress / veritabanı ile ilgili değildi ...

Ancak URL'nin uzunluğu 255 karakteri aştı (ve tüm web tarayıcıları bunu yapmaz).

Burada olan, 255 karakterden daha uzun bir URL olabilir; bu, tarayıcının adres çubuğu tarafından açıldığında kesilir ... kötü bir kalıcı bağlantı alınmasına neden olur ... bu da 4o4 ile sonuçlanır.

Bu nedenle, maksimum sülük uzunluğunun şunlar olabileceği varsayılabilir:

255 - uzunluğu (Protokol + FQDN + kalıcı bağlantı yapısı) ...

  • tarayıcının sabit sınırına göre.

Ama 200 karakterden uzun olamaz ...

  • posta_adı'nın alan büyüklüğüne göre.

Bu özel durumda başka bir şey 4o4'e neden olmuş olsa bile.

Düzgün url_encoded olmayan bir karakter olabilirdi, 4o4'lerin nedenleri oldukça sonsuz ... HDD'de kötü bir küme veya hatalı bir RAM modülü olarak hiç düşündünüz mü? :)


GUID URL değil. Sadece bir tanesine benziyor, ancak bir isteği okumak için kullanılmıyor. WordPress'i bir etki alanından diğerine taşırsanız GUID değişmez. Bkz. Core.trac.wordpress.org/ticket/6492 ve core.trac.wordpress.org/ticket/10857 .
fuxia

Erm, kimlik tanımından başka ne için benzersiz bir kimlik kullanılmalıdır? Demek istediğim, temelde soru şu: Bu durumda 4o4'ün atılmasının nedeni nedir?
Martin Zeitler

Bence 404 ve GUID birbiriyle ilişkili değil. WordPress, bir URL ile eşleşen bir gönderi ararken GUID'i kullanmaz.
fuxia

Bu konuda haklı olduğunuzu düşünün ... post_name ve GUID sorunun kaynağı olarak dışlanabilir - geriye kalan kalıcı bağlantılar ve yeniden yazma. Apache günlük dosyaları veya herhangi bir şey olmadan bu sadece tahmin ediyor;)
Martin Zeitler

syslogic Bence yeniden yazma muhtemelen nedeni ve daha fazla araştırma taşımaktadır. Http: // kısmı da dahil olmak üzere URL hala 128 karakterden azdı, bu yüzden URL uzunluğunda sabit bir tarayıcı sınırına ulaştığını düşünmüyorum.
Tom Auger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.