У меня есть сайт с использованием MODx Revolution (2.2.10-pl, advanced install), назовем его www.example.com
, который я хочу быть доступным как с http, так и с https.Настройка MODx Revolution для работы с http и https
Для этого я изменил настройку контекста site_url
как [[++url_scheme]]www.example.com/
. Ссылки, созданные с использованием [[~id]]
, кажутся в порядке, однако иногда созданные сгенерированные ссылки действительно странные. Моя интерпретация заключается в том, что код для создания ссылок программно не работает с моими настройками, но я не знаю, почему, или как еще я хотел бы включить как http, так и https.
Вопрос первый, примеры ниже: Как я должен установить site_url
или любой другой параметр сайта/контекст, так что ссылки на моем сайте работе как с HTTP и HTTPS? Возможно, поведение, которое я вижу в ошибке, или ожидаемое поведение, учитывая семантику оценки тегов Revolution?
Misbehavior:
Когда я нажимаю на «View» в менеджере ресурса с псевдонимом example
, адрес, который открыт является
https://www.example.com/xyz/[[++url_scheme]]www.example.com/example/
где xyz
является мой URL-адрес менеджера. Ожидаемый URL, конечно
https://www.example.com/example/
Другой случай, когда это происходит за неудачных попыток входа; мой Войти вызов выглядит следующим образом (минус несущественных деталей):
[[!Login? &redirectToOnFailedAuth=`[[++unauthorized_page]]`]]
unauthorized_page
«s ожидается полный URL является
https://www.example.com/special/401
но URL, который открыт для неудавшегося входа в username
является
https://www.example.com/[[++url_scheme]]www.example.com/[[++url_scheme]]www.example.com/special/401?u=username
Второй пример такой же для http, за исключением схемы, конечно; Я не зашел в менеджер с http.
EDIT
.htaccess
в вебсервера:
RewriteEngine On
RewriteBase/
# redirect all requests to /en/favicon.ico to /favicon.ico
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(en)/favicon.ico$ favicon.ico [L,QSA]
#RewriteRule ^(en|nl|de)/favicon.ico$ favicon.ico [L,QSA]
# redirect all requests to /en/assets* /assets*
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(en)/assets(.*)$ assets$2 [L,QSA]
#RewriteRule ^(en|nl|de)/assets(.*)$ assets$2 [L,QSA]
# redirect all other requests to /en/*
# to index.php and set the cultureKey parameter
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(en)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
#RewriteRule ^(en|nl|de)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
.htaccess
в каталоге менеджера:
RewriteEngine On
RewriteBase/
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/xyz/$1
Как насчет файла htacess в корне MODx? Является ли переписывание включенным/отключенным там ... при каких условиях? Также может быть htacess в корне менеджера для MODx. Просто пытаюсь думать о проблемах, с которыми я сталкивался в прошлом. – camelCase
Хороший вопрос о htaccess, я добавил части без комментариев для каталога root и manager. Кажется, что часть о FURL не включена в первом htaccess, хотя мы ее используем (успешно) ... Я попытаюсь выяснить, что там происходит ... –
какой твой базовый тег href? Можете ли вы попробовать этот ? На самом деле это просто без каких-либо htaccess или контекстных настроек. –
orbitory