[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переадресация с http на https 301, вместо 307
inpost
Apache 2.4
<VirtualHost *:80>
...
RewriteEngine On
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>

Всем привет. Пишу этот код, а вместо этого получаю переадресацию 307:
user posted image
Пробовал ещё прописать NE, NC ключи для реврайт правила, никакого эффекта, без ключей так же.
В свою очередь временная линия в FireFox не может остановиться:
http://my.jetscreenshot.com/7950/20150328-rxkf-17kb.jpg

В Safari этот реврайт вообще не работает, пришлось реализовать на PHP:
if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'],TRUE,301);
exit;
}

При этом реврайт на PHP так же в Хроме возвращает 307, а не 301, а в FireFox повисает крутящийся значек загрузки.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
killer8080
насчет 307 статуса не подскажу, но условие
Цитата (inpost @ 29.03.2015 - 00:52)
RewriteCond %{HTTPS} !=on

тут лишнее, это же конфиг для 80-го порта, значит шифрования нет

Цитата (inpost @ 29.03.2015 - 00:52)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L]

тут вроде лишний слеш в регулярке
inpost
killer8080
Сама переадресация корректно работает, да, проверка на HTTPS тут действительно лишняя, но даже убирая её Safari не хочет делать переадресацию. mad.gif

Сам реврайт корректно работает, то есть я проверял и внутренние страницы тоже.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
stump
Цитата (killer8080 @ 29.03.2015 - 15:38)
насчет 307 статуса не подскажу, но условие
Цитата (inpost @ 29.03.2015 - 00:52)
RewriteCond %{HTTPS} !=on

тут лишнее, это же конфиг для 80-го порта, значит шифрования нет

Цитата (inpost @ 29.03.2015 - 00:52)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L]

тут вроде лишний слеш в регулярке

Русским по белому написали:
Цитата
Цитата (inpost @ 29.03.2015 - 00:52)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L]

тут вроде лишний слеш в регулярке


Цитата
^/(.*)

К примеру http://server.ru
Rewrite https://%{SERVER_NAME}/server.ru$1

https://server/server.ru$1 


Не камильфо!

Что бы мне ответить тебе. мне гуглить надо. Вот нагуглил первую ссылку по вопросы "реврайт 301 на https": http://www.nulled.cc/threads/258808/

Для приманки:
RewriteCond %{SERVER_PORT} !^443$ 


_____________
Трус не играет в хокей
inpost
stump
Это вообще что такое? При чём тут: "когда срабатывает реврайт" правило? Ты утверждаешь, что Safari маскируется под HTTPS, когда работает по порту 80? Это задокументированная особенность, или с таким багом встречался? Можешь подробнее этот момент рассказать.

Я убрал RewriteCond, он просто не нужен, как сказал Киллер, без результата.
Слеш пробовал убирать, никакого эффекта. Как РАБОТАЛО, так и продолжает РАБОТАТЬ. wink.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
inpost
stump
А ты не мог бы рассказать более подробно свой ответ. В FireFox появляется кружок загрузки постоянный, при этом переадресация сработала. Как слеш в начале мог повлиять на этот момент? И как все эти телодвижения изменят переадресацию с 307 ошибки на 301?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
killer8080
Цитата (inpost @ 30.03.2015 - 14:11)
Слеш пробовал убирать, никакого эффекта. Как РАБОТАЛО, так и продолжает РАБОТАТЬ

да слеш там правильно стоял, я не обратил внимания на контекст, правило же в конфиге, а не .htaccess :)
inpost
а сейчас ссылка http://school-php.com/errors работает? get_headers возвращает
Array
(
[0] => HTTP/1.1 400 Bad Request
[1] => Date: Mon, 30 Mar 2015 11:33:29 GMT
[2] => Server: Apache/2.4.12 (Ubuntu)
[3] => Strict-Transport-Security: max-age=31536000
[4] => Content-Length: 307
[5] => Connection: close
[6] => Content-Type: text/html; charset=iso-8859-1
)




Спустя 3 минуты, 21 секунда killer8080 написал(а):
а пардон не так
Array
(
[0] => HTTP/1.0 301 Moved Permanently
[1] => Date: Mon, 30 Mar 2015 11:35:43 GMT
[2] => Server: Apache/2.4.12 (Ubuntu)
[3] => Location: https://school-php.com/errors
[4] => Content-Length: 0
[5] => Content-Type: text/html; charset=UTF-8
[7] => Proxy-Connection: close
[8] => HTTP/1.1 400 Bad Request
[9] => Date: Mon, 30 Mar 2015 11:35:43 GMT
[10] => Server: Apache/2.4.12 (Ubuntu)
[11] => Strict-Transport-Security: max-age=31536000
[12] => Content-Length: 307
[13] => Connection: close
[14] => Content-Type: text/html; charset=iso-8859-1
)


но 307 статуса не видно
inpost
killer8080
Тут - да, а в инспекторе Chrome видно 307, а не 301 в status code. Странно как-то. В FireFox не посмотреть.
Так что, через get_headers лучше инспектировать, чем в браузере инспектор?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
stump
inpost
Цитата (stump @ 29.03.2015 - 21:10)
Что бы мне ответить тебе. мне гуглить надо.


_____________
Трус не играет в хокей
killer8080
Цитата (inpost @ 30.03.2015 - 17:45)
Тут - да, а в инспекторе Chrome видно 307, а не 301 в status code. Странно как-то. В FireFox не посмотреть.

тю блин, ну теперь всё ясно smile.gif
307 это внутренний редирект, но не на стороне сервера, а на стороне клиента

Цитата (inpost @ 30.03.2015 - 17:45)
Так что, через get_headers лучше инспектировать, чем в браузере инспектор?

тестировать лучше через дебагерскую проксю (фидлер например), тогда бы ты увидел что никакого запроса на 80-й порт сервера браузер не посылал, ты же ему сам запретил это делать. smile.gif
killer8080
Цитата (stump @ 30.03.2015 - 18:16)
inpost
Цитата (stump @  29.03.2015 - 21:10)Что бы мне ответить тебе. мне гуглить надо.

зачем что то отвечать, если без гугла тебе сказать нечего? blink.gif
inpost
killer8080
Спасибо.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.