Доставка статических ресурсов через SSL в TYPO3 - PullRequest
1 голос
/ 01 февраля 2012

У меня есть веб-сайт TYPO3, которому нужно, чтобы его домашняя страница (и только домашняя страница) обслуживалась по SSL.

Моя первая попытка решить эту проблему состояла в том, чтобы установить расширение HTTPS Enforcer , которое позволяет указывать конкретные страницы на вашем сайте TYPO3, которые должны быть настроены на использование HTTPS. На этом уровне расширение работает как рекламируется. Но проблема в том, что, хотя запросы на одну из этих страниц действительно обрабатываются через SSL, ресурсы, включенные на странице (например, изображения), , а не доставляются через SSL. Таким образом, вы получаете предупреждение в своем браузере (которое, в зависимости от браузера, может варьироваться от тихого информационного сообщения до полной страницы с кричащим предупреждением), сообщающее, что страница не является полностью защищенной, что (понятно) волнует людей.

Итак, мой вопрос - как вы получаете TYPO3 для доставки полной страницы по SSL, включая статические ресурсы? Есть ли способ настроить / расширить HTTPS Enforcer для этого? Есть ли другое расширение, которое лучше в этом сценарии? Или мне просто не повезло?

Ответы [ 2 ]

4 голосов
/ 01 февраля 2012

HTTPs Enforcer делает хорошую работу.

Если это всего лишь одна страница, вы можете создать условие для изменения baseUrl:

[PIDinRootline = 123]
config.baseURL = https://www.example.com/
[global]

если он должен работать на весь поддомен (например, ssl.example.com), ваше состояние выглядит следующим образом:

[globalString = ENV:HTTP_HOST=ssl.example.com]
config.baseURL = https://ssl.example.com/
[global]

Вторым способом вы можете выбрать для каждой страницы, должна ли страница быть зашифрована или нет.

Подводным камнем может быть внешне загруженный ресурс (например, API Facebook и т. Д.). Они могут не предлагать зашифрованную службу SSL.


РЕДАКТИРОВАТЬ (из комментария @ cascaval) Это может быть предпочтительным решением:

[globalString = _SERVER|HTTPS=on]
config.baseURL = https://ssl.example.com/
[global]

РЕДАКТИРОВАТЬ (из комментария @ konsolenfreddy)

[globalString = ENV:TYPO3_SSL=1]
config.baseURL = https://ssl.example.com/
[global]
1 голос
/ 19 февраля 2013

Я думаю, это должно быть:

[globalVar = IENV:TYPO3_SSL = 1]
config.baseURL = https://ssl.example.com/
[global]

Обратите внимание на «IENV»: это специфично для TYPO3. «ENV» будет использовать только обычные переменные PHP в $ _ENV или $ _SERVER, где TYPO3_SSL не является допустимым ключом.

Но это только следующее: установить тег в выводе так, чтобы содержимое релятивных ссылок, например, image , было получено по SSL .

Если у вас есть ссылки на ресурсы (изображения, CSS и т. Д.) На абсолютные URL-адреса на вашем сайте, это не поможет. В таком случае вы можете попробовать расширение «https» (объединение https_enforcer и другого расширения) или stfl_replace, чтобы сделать некоторое регулярное выражение, заменяющее «http://" links to» https://".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...