Передмова
По-перше: Просто Порт 80 -> Порт 443 Перепишіть НЕ виправить це. Майже в кожному попередньому запитанні, поштовій нитці, потоці форуму тощо, я виявив, що це була перша невігласна відповідь, і її кілька разів папугували.
По-друге: Так, я знаю, що ви не можете обслуговувати трафік HTTP та HTTPS на одному порті. Це не те.
Сценарій:
Apache Server розміщує декілька сайтів через множення портів. Порт 80 обслуговує загальнодоступний сайт. Порт 443 обслуговує захищену версію цього сайту.
Порти 7443, 8443 та 9443 обслуговують окремі сайти, захищені SSL.
Якщо користувач вводить неправильну URL-адресу або надається недійсне посилання, скажімо http: //hostname.tld: 7443 , їм надається така смішна сторінка:
Замість сервера просто перенаправляйте їх на https: //hostname.tld: 7443 .
Моє запитання полягає в тому, як ви можете змінити поведінку Apache або це повідомлення про помилку, щоб в імені бабки Зевса змінити поведінку Apache або автоматично перенаправити користувача?
Apache, очевидно, обслуговує не https-запит (для відображення цього повідомлення про помилку), навіть якщо він налаштований для HTTPS. Мені здається надзвичайно німим не просто робити переадресацію за замовчуванням, але я можу зрозуміти, чому вони пішли з поведінкою, яку вони робили, навіть якщо я з цим не згоден. Отже, моє запитання: чи можете ви це змінити? Вони обробляють помилку ДЕЙШЕ, і якщо Apache є рогом конфігурації, що це таке, очевидно, існує десь директива, де можна поводитися з цією поведінкою, але я не зміг її знайти за кілька годин майстерності до цих пір.
Оновлення:
Я спробував різні речі, зокрема:
використовуючи
ErrorDocument 400
директиви, щоб дістатися до CGI та PHP-скрипту, які просто надсилаютьStatus 301
таLocation
заголовки. Це призводить до появи порожньої сторінки. ВикористанняErrorDocument 400 https://hostname.tld:7443
просто призводить до того, що посилання відображається на сторінці.Використовуючи майже будь-яку комбінацію
mod_rewrite
я або Google, можна придумати, включаючи бланкетні заяви, які повністю спрямовують сайт; вони ніколи не працюють. Буквально вони нічого не роблять. Я гадаю, що Apache натискає на вказану вище помилку, перш ніж намагатися обробити директиви перезапису.
Я не можу використовувати перенаправлення на основі портів через користувацькі порти. Я не можу використовувати переадресації на основі скриптів, оскільки вони ніколи не отримуються через невідповідність http / https. Я майже готовий пояснити це помилкою або ненавмисною поведінкою, але хтось мав намір покласти там дуже звичайне повідомлення про помилку, вони не турбувались, думаючи, що, можливо, ви хочете просто покататися на URL-адресу, яку вони вже надають ?