Помогите сдружить стандартный .htaccess с собственным

Проблемы с установкой или работой phpBB 3.1.x? Получите помощь здесь!
С 1 июля 2018 года phpBB Group прекращает поддержку phpBB версии 3.1.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.1 до 1 января 2019 года.
Подробнее: Окончание поддержки phpBB 3.1.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 10 лет 11 месяцев
Благодарил (а): 15 раз
Поблагодарили: 20 раз

Помогите сдружить стандартный .htaccess с собственным

Сообщение DesignerMix »

Описание проблемы: У меня на хостинге форум располагается в папке "forum" которая лежит в корне. Я использую SSL но он распространяется только на домен без WWW т.е. если я перейду по адресу https://www.dmyt.ru/forum то получу вообщение о том, что SSL (TLS) не подтвержден. Поэтому я был вынужден создать в корне сайта (т.е. не в папке с форумом, а выше) файл .htaccess следующего содержания:

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

# Редирект из корня на форум
RewriteEngine On
RewriteRule ^$ /forum [L]

# Убираю из адреса www (редирет на http)
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# Включаю HTTPS для всех страниц сайта
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} 
Все это работало отлично и не вызывало проблем. А после конвертации phpBB с 3.0.12 на 3.1.2 я обнаружил что из адреса перестали убираться WWW и протокол больше не заменяется на HTTPS. Как оказалось проблема в том, что в корне папки с форумом в файле .htaccess добавились следующие строки:

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

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
Если их закомментировать то на первый взгляд все работает хорошо, но некоторые моды, например phpBB3 SEO Sitemap 1.0.0 работают некорректно т.к., на сколько я понимаю, приложение app.php некорректно обрабатывает http-зарос...

Приведу пример - Если я оставлю рабочим только файл httaccess из корня сайта, то при переходе по ссылке https://dmyt.ru/forum/sitemap.xml вместо карты сайта будет ошибка 404.
Также раньше у меня был мод который располагался по адресу https://dmyt.ru/forum/downloads.php а сейчас он переехал на https://dmyt.ru/forum/app.php/dl_ext/

Обе эти проблемы я решил добавлением в htaccess из корня сайта (не из папки forum) следующих строк:

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

RewriteRule ^forum/downloads\.php(.*)$ forum/app.php/dl_ext/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} forum\/([a-z0-9_-]+)\.xml$
RewriteRule ^(.*)$ forum/app.php [QSA,L]
То-есть на данный момент у меня корректно перенаправляются пользователи пришедшие по старым (https://dmyt.ru/forum/downloads.php), а также открывается карта сайта https://dmyt.ru/forum/sitemap.xml

Но на сколько я понимаю это может быть только временным решением т.к. другие моды которые я возможно установлю в будущем скорее всего будут работать некорректно.

Собственно отсюда вопрос: Как сдружить все мои директивы из коревого файла htaccess с файлом htaccess из корня форума? Но при этом что-бы работало и то и то. Или это не возможно в принципе?

Произведенные изменения, после которых начались неполадки: Форум сконвертирован с версии 3.0.12 на версию 3.1.2
Версия phpBB: 3.1.2
Используемые стили: SE Square Left
Используемые моды: BB3Topics 1.0.0; Highslide 0.0.1; Hotschi's Downloads 7.0.7; phpBB3 SEO Sitemap 1.0.0; Precise Similar Topics 1.3.0; QuickReply 0.1.4-dev; Reputation System 1.0.0-dev
Версия PHP: 5.3.13
Используемая СУБД и её версия: MySQL 5.1.73-log (вроде как это не версия phpMyAdmin, а именно MySQL)
Ссылка на конференцию: https://dmyt.ru/forum
Есть ли у вас тестовый аккаунт: Нет, но если нужно могу создать
Использовался ли поиск для решения проблемы: Да
Если да, то какие запросы вы использовали: htaccess


PS: Надеюсь что не слишком путано все описал... :oops:
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение rxu »

DesignerMix писал(а):другие моды которые я возможно установлю в будущем скорее всего будут работать некорректно
Как можно решать проблему, которой еще нет, но она возможно предположительно может когда-нибудь при каких-нибудь неизвестных обстоятельствах возникнуть?
Изображение
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 10 лет 11 месяцев
Благодарил (а): 15 раз
Поблагодарили: 20 раз

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение DesignerMix »

rxu, просто я не уверен в корректности того решения, которое я применил так как не до конца понимаю предназначение htaccess из оригинального дистрибутива 3.1.2. Я боюсь того, что проморгал какую-то проблему. То-есть вы считаете что мое решение не нарушает правильную работу форума?
Anvar
Former team member
Сообщения: 1965
Стаж: 15 лет 1 месяц
Благодарил (а): 57 раз
Поблагодарили: 622 раза

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение Anvar »

Если в админке форума, Настройки сервера - Протокол сервера изменить на https:// проблема не решается?
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 10 лет 11 месяцев
Благодарил (а): 15 раз
Поблагодарили: 20 раз

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение DesignerMix »

Anvar, попробовал. Даже поставил Принудительные настройки URL сервера: в положение Да и убрал правило из htaccess на смену протокола. Но к сожалению протокол автоматически не меняется. Вернул все как было.

Увидел кстати там новую настройку: Параметры путей ее я тоже включил и так-же проверил отключив свои правила в корневом htaccess. Но ничего так-же не изменилось.

PS: Надо в деталях поизучать все новых настройки форума. Спасибо за наводку!
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 12 лет 11 месяцев
Благодарил (а): 97 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение xisp »

Можно попробовать добавить правила редиректа в папку с форумом, перед правилами редиректа на app.php

Добавлено спустя 1 минуту 55 секунд:
DesignerMix писал(а):но он распространяется только на домен без WWW
Что мешает выписать сертификат на домен с WWW? Можно бесплатный от http://startssl.com/
phpBBex
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 10 лет 11 месяцев
Благодарил (а): 15 раз
Поблагодарили: 20 раз

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение DesignerMix »

xisp, я пробовал изначально себе выпустить сертификат с помощью предложенного вами ресурса, но у меня тяму не хватило :(. Возможно это будет неплохим выходом из положения... Я попробую это провернуть снова. Надеюсь получится. Спасибо.
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 12 лет 11 месяцев
Благодарил (а): 97 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение xisp »

DesignerMix писал(а):тяму
Чего?
DesignerMix писал(а):Возможно это будет неплохим выходом из положения...
Это независимые проблемы, на самом деле.
phpBBex
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 10 лет 11 месяцев
Благодарил (а): 15 раз
Поблагодарили: 20 раз

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение DesignerMix »

xisp писал(а):Чего?
знаний
xisp писал(а):Это независимые проблемы, на самом деле.
А мне кажется что зависимые, ведь если мне не будет надобности выполнять эти условия:

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

# Убираю из адреса www (редирет на http)
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# Включаю HTTPS для всех страниц сайта
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} 
То конфликтов с форумными правилами не будет. Но это нужно проверить...
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 12 лет 11 месяцев
Благодарил (а): 97 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение xisp »

DesignerMix писал(а):ведь если мне не будет надобности выполнять эти условия:
Почему не нужно будет? Вы зачем вообще https включили? В любом случаи правило редиректа на https должно будет остаться.
И что вам мешает в первом правиле перенаправлять сразу на https? Когда я сидел на апачах, у меня работало вот такое правило:

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Правда на 3.1 и форум был в корне.
phpBBex
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 10 лет 11 месяцев
Благодарил (а): 15 раз
Поблагодарили: 20 раз

Re: Помогите сдружить стандартный .htaccess с собственным

Сообщение DesignerMix »

xisp писал(а):Почему не нужно будет? Вы зачем вообще https включили? В любом случаи правило редиректа на https должно будет остаться.
Да, вы правы. Просто уже "глаз замылился".
xisp писал(а):И что вам мешает в первом правиле перенаправлять сразу на https?
Я изначально делал перенаправление сразу, но некоторые браузеры (напр. google chrome) выдавали предупреждение о подозрительной переадресации (дословно уже не помню текст ошибки). А вот тот способ который я использую ошибок не вызывал.

Вернуться в «Поддержка phpBB 3.1.x»