diff --git a/modules/admin/admin.admin.controller.php b/modules/admin/admin.admin.controller.php
index 91f014c0b..f18f446cd 100644
--- a/modules/admin/admin.admin.controller.php
+++ b/modules/admin/admin.admin.controller.php
@@ -626,14 +626,31 @@ class adminAdminController extends admin
{
return new Object(-1, 'msg_invalid_default_url');
}
- Rhymix\Framework\Config::set('url.default', $vars->default_url);
// SSL and ports
if ($vars->http_port == 80) $vars->http_port = null;
if ($vars->https_port == 443) $vars->https_port = null;
+ $use_ssl = $vars->use_ssl ?: 'none';
+
+ // Check if all URL configuration is consistent
+ if ($use_ssl === 'always' && !preg_match('@^https://@', $default_url))
+ {
+ return new Object(-1, 'msg_default_url_ssl_inconsistent');
+ }
+ if ($vars->http_port && preg_match('@^http://@', $default_url) && parse_url($default_url, PHP_URL_PORT) != $vars->http_port)
+ {
+ return new Object(-1, 'msg_default_url_http_port_inconsistent');
+ }
+ if ($vars->https_port && preg_match('@^https://@', $default_url) && parse_url($default_url, PHP_URL_PORT) != $vars->https_port)
+ {
+ return new Object(-1, 'msg_default_url_https_port_inconsistent');
+ }
+
+ // Set all URL configuration
+ Rhymix\Framework\Config::set('url.default', $default_url);
Rhymix\Framework\Config::set('url.http_port', $vars->http_port ?: null);
Rhymix\Framework\Config::set('url.https_port', $vars->https_port ?: null);
- Rhymix\Framework\Config::set('url.ssl', $vars->use_ssl ?: 'none');
+ Rhymix\Framework\Config::set('url.ssl', $use_ssl);
// Other settings
Rhymix\Framework\Config::set('use_mobile_view', $vars->use_mobile_view === 'Y');
diff --git a/modules/admin/lang/en.php b/modules/admin/lang/en.php
index b71b7ea5b..0a746264e 100644
--- a/modules/admin/lang/en.php
+++ b/modules/admin/lang/en.php
@@ -87,6 +87,9 @@ $lang->use_gzip = 'gzip Compression';
$lang->delay_session = 'Delay session start';
$lang->about_delay_session = 'To improve performance when using a caching proxy server such as Varnish, do not issue sessions to visitors until they log in.
Selecting this option may cause view counts and visitor counts to become inaccurate.';
$lang->msg_invalid_default_url = 'The default URL is invalid.';
+$lang->msg_default_url_ssl_inconsistent = 'In order to use SSL always, the default URL must also begin with https://';
+$lang->msg_default_url_http_port_inconsistent = 'In order to change the HTTP port, the default URL must also include the port number.';
+$lang->msg_default_url_https_port_inconsistent = 'In order to change the HTTPS port, the default URL must also include the port number.';
$lang->sftp = 'Use SFTP';
$lang->ftp_get_list = 'Get List';
$lang->ftp_remove_info = 'Remove FTP Info.';
diff --git a/modules/admin/lang/ja.php b/modules/admin/lang/ja.php
index 7d9edae8b..e7a686b32 100644
--- a/modules/admin/lang/ja.php
+++ b/modules/admin/lang/ja.php
@@ -86,6 +86,10 @@ $lang->about_minify_scripts = 'コアとすべてのモジュールに含まれ
$lang->use_gzip = 'gzip 圧縮';
$lang->delay_session = 'セッションの開始を遅延';
$lang->about_delay_session = 'Varnishなどのプロキシキャッシュサーバ使用時のパフォーマンスを向上させるために、ログインしていないユーザーには、認証セッションを付与しません。
このオプションを選択した場合、訪問者数とヒット集計が正確でない場合があります。';
+$lang->msg_invalid_default_url = '基本URLが正しくありません。';
+$lang->msg_default_url_ssl_inconsistent = 'SSLを常に使用する場合、基本URLもhttps://で始まる必要があります。';
+$lang->msg_default_url_http_port_inconsistent = 'HTTPポートを変更する場合、基本URLも同じポートが含まれている必要があります。';
+$lang->msg_default_url_https_port_inconsistent = 'HTTPSポートを変更する場合、基本URLも同じポートが含まれている必要があります。';
$lang->sftp = 'SFTP使用';
$lang->ftp_get_list = 'ディレクトリを読み込む';
$lang->ftp_remove_info = 'FTP情報削除';
diff --git a/modules/admin/lang/ko.php b/modules/admin/lang/ko.php
index e5133db73..cc0c838d0 100644
--- a/modules/admin/lang/ko.php
+++ b/modules/admin/lang/ko.php
@@ -87,6 +87,9 @@ $lang->use_gzip = 'gzip 압축';
$lang->delay_session = '세션 시작 지연';
$lang->about_delay_session = 'Varnish 등의 프록시 캐싱 서버 사용시 성능 개선을 위해, 로그인하지 않은 사용자에게는 인증 세션을 부여하지 않습니다.
이 옵션을 선택할 경우 방문자 수 및 조회수 집계가 정확하게 이루어지지 않을 수 있습니다.';
$lang->msg_invalid_default_url = '기본 URL이 올바르지 않습니다.';
+$lang->msg_default_url_ssl_inconsistent = 'SSL을 항상 사용하실 경우 기본 URL도 https://로 시작해야 합니다.';
+$lang->msg_default_url_http_port_inconsistent = 'HTTP 포트를 변경하실 경우 기본 URL에도 동일한 포트가 포함되어야 합니다.';
+$lang->msg_default_url_https_port_inconsistent = 'HTTPS 포트를 변경하실 경우 기본 URL에도 동일한 포트가 포함되어야 합니다.';
$lang->sftp = 'SFTP 사용';
$lang->msg_ftp_not_connected = 'FTP 서버에 접속할 수 없습니다. 주소와 포트를 확인해 주십시오.';
$lang->msg_ftp_invalid_auth_info = 'FTP 서버에 로그인할 수 없습니다. 아이디와 비밀번호를 확인해 주십시오.';