Страница 1 из 1

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

Добавлено: 2018.05.10, 06:27
louisvuitton
Здравствуйте, помогите настроить переадресацию 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

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

Добавлено: 2018.05.10, 09:27
vitalik1183

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

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-й редирект кешируется браузером!

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

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

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

Добавлено: 2018.05.11, 05:55
louisvuitton
Методом проб сделал вот так:

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

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
Это нормально?
можно как то первые два блока объединить в одну переадресацию?

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

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

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

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

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

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

Добавлено: 2018.05.12, 10:35
louisvuitton
Дальше по поводу 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 )

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

Добавлено: 2018.05.21, 13:41
vitalik1183
Если нужно быстро и без лазания в код - можно воспользоваться этим!

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

Добавлено: 2018.07.06, 03:10
louisvuitton
Товарищи
Вот такой редирект работает на главном домене, все ок.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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