Kaba TV sunucusu engelli misafirlerine gülmekten kendini alamaz!

Garip bir problemim var. Üzerinde çalıştığım bir sitedeki adlandırılmış bağlantılara bağlantılar, yalnızca diyez / karma işareti bir sayfa adının hemen arkasına (ör. Örnek) değil, sondaki eğik çizgiden sonra (ör. Example.com/about/#who) yerleştirilirse düzgün çalışıyor .com / yaklaşık # kim).

Buna ne sebep olabilir? Bunun, WPML çeviri eklentisiyle WordPress çalıştıran bir sitede olduğunu not etmeliyim. Soruna bunun neden olup olmadığından emin değilim (aksi takdirde WordPress Answers SE sitesinde sorardım).

Bu tuhaf davranışa neyin sebep olabileceğine dair herhangi bir öneriniz var mı?

  • Jacob Hume'un cevabı teknik olarak doğrudur ve cevabı hakkındaki yorumlar sorunuzu tamamen cevaplamalıdır ... ödülü ödüllendirmeden önce aradığınız başka bir şey var mı?
+50

Biraz araştırma yaptıktan sonra, sondaki bölü çizgisinin dışında bırakılması tarayıcınızın beklediğiniz gibi dahili bir bağlantı yerine "example.com/about#" dosyası için başka bir HTTP isteği göndermesine neden olur.

Şimdi, bu tür bir isteği bir IIS web sunucusunda ve bir Apache web sunucusunda denedim ve her ikisi de bana 301 yönlendirmesini doğru URL'ye geri gönderdi, bu yüzden bu anlaşılabilir hatayı gidermek için bazı yerleşik işlevlere sahip olduklarını düşünüyorum.

Bununla birlikte, WordPress / WPML'nin Apache'nin mod_rewrite veya benzer bir şeyi arama motoru dostu URL'ler yapmak için kullandığını tahmin ediyorum, bu yüzden example.com/about.php?user=tnorthcuttsen anladın example.com/about/tnorthcutt. Bu muhtemelen sunucunun normal düzeltme davranışını atlayacaktır. Yani Apache sizi uygun URL'ye yönlendirmek yerine, onu arama motoru dostu bir sürümden çevirmeye çalışır ve her şey oradan güneye gider.

Öyleyse sanırım hikayenin ahlaki sadece eğik çizgiyi eklemek ve mümkünse fazladan HTTP isteğinden tamamen kaçınmaktır.

Not: Bu çılgınca bir spekülasyondur ve kurulumunuz hakkında birçok varsayımda bulunuyorum. Tuz tanesi gerekli.

  • Eğer /about bir dizin değildir, bu durumda URL'nin sonuna bir eğik çizgi eklemeye gerçekten gerek olmamalıdır. Sunucu, yalnızca adlı bir dosya bulamazsa yeniden yönlendirme ile yanıt vermelidir about ancak adlı bir alt dizin buluyor about.
  • 2 @ Lèse majesté - "/" ile sonlandırılmayan statik sayfa URI'leri için size bir 301 verilecektir ve bu davranışı geçersiz kılmak için bir eklenti yazmanız gerekecektir (bu, URI sonrası yapısının aksine, yapılandırmaya izin vermez ) ... WordPress geliştiricileri bu sondaki eğik çizgiyi şiddetle hissetti.
  • Tuhaf ... Dizinleri dosyalardan ayırmak için sondaki eğik çizginin amacını bozuyor, ancak bu bilgiyi bilmek güzel.

Sizin için çalışmış: Charles Robertson | bize ister?