https, без www и без index.php (apache)

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
louisvuitton
Сообщения: 182
Зарегистрирован: 2014.02.16, 03:09

https, без www и без index.php (apache)

Сообщение louisvuitton » 2018.05.10, 06:27

Здравствуйте, помогите настроить переадресацию apache,
чтобы ссылки были без index.php, без www, и всегда по https

Сейчас .htaccess вот такой (без www и без index.php в адресах).

Код: Выделить всё

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
Но если добавлять сюда еще правила для http->https (из мануалов), то ловлю циклическую переадресацию :x

Аватара пользователя
vitalik1183
Сообщения: 1673
Зарегистрирован: 2014.07.01, 08:42

Re: https, без www и без index.php (apache)

Сообщение vitalik1183 » 2018.05.10, 09:27

Код: Выделить всё

RewriteEngine On

RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://example.com$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
И не забывайте, что 301-й редирект кешируется браузером!
Yii2!

louisvuitton
Сообщения: 182
Зарегистрирован: 2014.02.16, 03:09

Re: https, без www и без index.php (apache)

Сообщение louisvuitton » 2018.05.11, 05:38

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
:cry:

louisvuitton
Сообщения: 182
Зарегистрирован: 2014.02.16, 03:09

Re: https, без www и без index.php (apache)

Сообщение louisvuitton » 2018.05.11, 05:55

Методом проб сделал вот так:

Код: Выделить всё

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Это нормально?
можно как то первые два блока объединить в одну переадресацию?

Аватара пользователя
vitalik1183
Сообщения: 1673
Зарегистрирован: 2014.07.01, 08:42

Re: https, без www и без index.php (apache)

Сообщение vitalik1183 » 2018.05.11, 08:22

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
Вы проверяли в приватном окне? Я к тому, чтобы исключить все возможности кеширования "старого" конфига.

Если будет редирект сначала на https, а затем на без www то думаю ничего страшного не произойдет. Ну или прописывайте варианты, чтобы сразу туда то туда то при таких то условиях.
Yii2!

louisvuitton
Сообщения: 182
Зарегистрирован: 2014.02.16, 03:09

Re: https, без www и без index.php (apache)

Сообщение louisvuitton » 2018.05.11, 17:45

Да проверял, спасибо за совет насчет кеширования редиректа!
Хотелось бы конечно за один проход перенаправлять на https и избавляться от www, но синтаксис rewrite_mod это дичь =\

louisvuitton
Сообщения: 182
Зарегистрирован: 2014.02.16, 03:09

Re: https, без www и без index.php (apache)

Сообщение louisvuitton » 2018.05.12, 10:35

Дальше по поводу https...

1. Есть какая то настройка, которая сделает все ссылки генерируемые
\yii\helpers\Url, Yii->$app->homeUrl
по https? без указания scheme

2. Почему у меня \yii\helpers\Url::home('https') генерирует
https://example.ruhttp://example.ru
что это за мистика откуда берется дублирование?
(простой \yii\helpers\Url::home() генерирутся нормально http://example.ru )

Аватара пользователя
vitalik1183
Сообщения: 1673
Зарегистрирован: 2014.07.01, 08:42

Re: https, без www и без index.php (apache)

Сообщение vitalik1183 » 2018.05.21, 13:41

Если нужно быстро и без лазания в код - можно воспользоваться этим!
Yii2!

louisvuitton
Сообщения: 182
Зарегистрирован: 2014.02.16, 03:09

Re: https, без www и без index.php (apache)

Сообщение louisvuitton » 2018.07.06, 03:10

Товарищи
Вот такой редирект работает на главном домене, все ок.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php


Но есть еще некое хранилище прикрепленных картинок на поддомене storage.domain.com
Для него с таким .htaccess
во первых обращения вида http://storage.domain.com не перенаправляются на httpS
Во вторых и сами картинки открываются только по http а не по httpS

Проверял в инкогнито режиме дабы избежать кеширования...
Как быть?

andku83
Сообщения: 680
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: https, без www и без index.php (apache)

Сообщение andku83 » 2018.07.06, 16:27

louisvuitton писал(а):
2018.07.06, 03:10
во первых обращения вида http://storage.domain.com не перенаправляются на httpS
а если обратиться по такому url http://www.storage.domain.com, будет редирект?

и вообще включен ли на хостинге https для данного хоста?

louisvuitton
Сообщения: 182
Зарегистрирован: 2014.02.16, 03:09

Re: https, без www и без index.php (apache)

Сообщение louisvuitton » 2018.07.06, 18:01

Не понятно.. в днс А-запись домена добавлен только основной domain.com
Потом в конфигах virtual host апача сделан субдомен для storage

В настройках https cloudflare пишет hosts: domain.com, *.domain.com

andku83
Сообщения: 680
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: https, без www и без index.php (apache)

Сообщение andku83 » 2018.07.07, 00:11

Обратите внимание на правила которые вы подобрали для фронта, и посмотрите на те которые написали для storage:
у вас редирект только с www на https, а без www с http на https у вас нет правил.

louisvuitton
Сообщения: 182
Зарегистрирован: 2014.02.16, 03:09

Re: https, без www и без index.php (apache)

Сообщение louisvuitton » 2018.07.10, 20:05

Да, спасибо, 1 редирект затерялся при аплоаде с локалхоста на сервер.

Редирект поправил(привел чтоб все сводилось к одному протоколу), но все же не получается заставить нормально отдавать картинки.
По http картинки работают, по https нет (не удается соединить с сервером).

Я бы и оставил с радостью Http, но я использую yii-starter-kit от terentev в котором хитрый компонент storage для прикрепления картинок. Этот компонент (после того как я настроил для основного домена https) генерирует ссылки https и для storage, которые не работают. Надо как-то сделать либо чтобы он генерировал ссылки http либо сделать так, чтоб картинки начали нормально открываться по https...

Посоветуйте плз какие то шаги куда копать

andku83
Сообщения: 680
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: https, без www и без index.php (apache)

Сообщение andku83 » 2018.07.11, 13:04

сразу бы и рассказывали о том что используете yii-starter-kit - хорошая базовая сборка, вот только в ней не хватает для старта вот такого .htaccess

Ответить