önsöz
Birincisi: Bir basitçe Liman 80 -> Liman 443 Rewrite OLMAYACAKTIR Bunu düzeltmek. Neredeyse her önceki soru, posta iş parçacığı, forum iş parçacığı, vb, ben bu ilk cahil tepki olduğunu bulduk ve birkaç kez papağan.
İkincisi: Evet, aynı bağlantı noktasında HTTP ve HTTPS trafiği sunamayacağınızı biliyorum. Bu değil.
Senaryo:
Bağlantı noktası çarpımı ile birden fazla siteyi barındıran Apache Server. 80 numaralı liman halka açık bir sitedir. Port 443, bu sitenin güvenli sürümünü sunar.
7443, 8443 ve 9443 numaralı bağlantı noktalarının her biri ayrı SSL Güvenli siteler sunar.
Bir kullanıcı URL'yi yanlış yazıyorsa veya geçerli olmayan bir bağlantı verildiyse , http: //hostname.tld: 7443 deyin , aşağıdaki gülünç sayfa verilir:
Sunucu yerine https: //hostname.tld: 7443 adresine yönlendiriliyor .
Benim sorum , Zeus'un popo deliği adına Apache'nin davranışını veya bu hata mesajını kullanıcıyı otomatik olarak yeniden yönlendirmek için nasıl değiştirebilirsiniz?
Apache, HTTPS için yapılandırılmış olmasına rağmen https olmayan bir istek (bu hata mesajını görüntülemek için) sunuyor. Sadece varsayılan olarak yönlendirmeyi yapmak benim için oldukça aptalca görünüyor, ancak kabul etmese bile neden yaptıkları davranışa gittiklerini anlayabiliyorum. Yani sorum şu: değiştirebilir misiniz? BAZI YERDE hatayı işliyorlar ve Apache, yapılandırma cornucopia olduğu için, bu davranışı ele almak için bir yerde bazı direktifler var, ancak şimdiye kadar birkaç saat içinde bulamadım.
Güncelleme:
Ben de dahil olmak üzere çeşitli şeyler denedim:
ErrorDocument 400
direktifleri kullanarak bir CGI ve sadece göndermekStatus 301
veLocation
üstbilgileri bir PHP betiği almak . Bu boş bir sayfa ile sonuçlanır.ErrorDocument 400 https://hostname.tld:7443
Basitçe kullanılması , o bağlantının sayfada görüntülenmesine neden olur.mod_rewrite
Siteyi tamamen yönlendiren kapsamlı ifadeler de dahil olmak üzere, hemen hemen her I veya Google kombinasyonunu kullanmak ; bunlar asla işe yaramıyor. Kelimenin tam anlamıyla, hiçbir şey yapmıyorlar. Yeniden yazma yönergelerini işlemeye çalışmadan önce Apache'nin yukarıdaki hataya tekme attığını tahmin ediyorum.
Özel bağlantı noktası kullanımı nedeniyle bağlantı noktası tabanlı yönlendirmeleri kullanamıyorum. Komut dosyası tabanlı yönlendirmeleri kullanamıyorum çünkü http / https uyumsuzluğu nedeniyle hiçbir zaman sunulmuyorlar. Neredeyse bir hataya veya istenmeyen bir davranışa tebeşir vermeye hazırım, ama birileri çok özel bir hata mesajı koymak için önceden düşünmüştü, belki sadece sepete atmak isteyeceğinizi düşünmekle uğraşmadılar. URL zaten sağladıkları ?