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

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
louisvuitton
Сообщения: 168
Зарегистрирован: 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
Сообщения: 1668
Зарегистрирован: 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
Сообщения: 168
Зарегистрирован: 2014.02.16, 03:09

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

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

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

louisvuitton
Сообщения: 168
Зарегистрирован: 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
Сообщения: 1668
Зарегистрирован: 2014.07.01, 08:42

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

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

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

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

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

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

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

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

louisvuitton
Сообщения: 168
Зарегистрирован: 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
Сообщения: 1668
Зарегистрирован: 2014.07.01, 08:42

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

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

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

Ответить