MODxのリソース毎にhttpとhttpsの設定を行い、自動でURLの変換をしたり、自動リダイレクトしてくれるプラグイン
PHP
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
autoload.php
changelog.txt
readme.md
sslSwitcher.txt

readme.md

#SSL Switcher

http/httpsの利用をリソース毎に切り替えできるプラグイン。

0.目次

  1. 概要

  2. 動作確認環境

  3. インストール

  4. アンインストール

  5. 使い方

  6. 注意事項

1.概要

MODXのリソース毎にhttpとhttpsの設定を行い、自動でURLの変換をしたり、自動リダイレクトしてくれるプラグインです。 次のような機能があります。

[リソースID]タグの拡張によるURL自動変換

ファイルパスに展開する[リソースID]タグがhttp/httpsを区別し自動でURLを変換します。 https設定をしていないリソースのコンテンツ内にてhttps設定をしているリソースIDを[リソースID]タグに記述するとファイルパスが自動的にhttps://のURL付フルパスに展開されます。 その逆の場合は同じようにhttp://のURL付フルパスに展開されます。

  • [リソースID]タグ展開早見表
                     ↓[~リソースID~]タグに書かれるリソース
|---------------------------------------------------------------|
|                  | https設定なし       | https設定あり        |
|---------------------------------------------------------------|
|https設定なし     | 通常変換            | https+ドメイン付変換 |
|https設定あり     | http+ドメイン付変換 | 通常変換             |
|---------------------------------------------------------------|
 ↑タグを書くリソース

httpからhttpsのページのリダイレクト

https設定しているリソースに対してhttpでリクエストすると自動的にhttpsページへとリダイレクトします。 逆にhttps設定していないページにhttpsでリクエストするとhttpページへとリダイレクトさせます。

2.動作環境

  • MODX 1.0.15J (※1.0.15J以前は動作しません)
  • PHP 5.3.x

3.インストール

プラグインの登録

  1. MODX管理画面の上部のエレメント→エレメント管理の順にクリック

  2. プラグインタブをクリック

  3. プラグイン作成をクリック。

  4. 「プラグインコード」に sslSwitcher.txt ファイルの中身を張り付けて保存

テンプレート変数の登録

  1. MODX管理画面の上部のエレメント→エレメント管理の順にクリック

  2. テンプレート変数タブをクリック

  3. テンプレート変数を作成をクリック。

  4. 次の内容を登録して保存する

  • メイン

  • 変数名: SSLSwitcher

  • 投稿画面内の見出し: SSLSwitcher

  • 入力フォーム:Check Box

  • オプション:HTTPS利用||自動リダイレクト禁止||URL書き換え禁止

  • 規定値: (空白のまま)

  • プロセッサ: (選択無)

  • テンプレートとの関連付け

  • SSLSwitcherを有効にしたいテンプレートを選択(よくわかれなければ全てにチェックでもOKです)

  • プロパティ

  • 既存のカテゴリ: SSLSwitcher

  • 説明:(空白のまま)

4.アンインストール

作成したプラグインとテンプレート変数を削除します。

5.使い方

管理画面でhttpsを使いたいリソースを編集します。

テンプレート変数の部分に「HTTPS利用」「自動リダイレクト禁止」と書かれたチェックボックスが表示されているので、必要に応じてチェックをつけて保存します。

  • HTTPS利用

該当リソースはhttpsページとする

  • 自動リダイレクト禁止

「HTTPS利用」にチェックしたリソースにhttpでアクセスしても自動でhttpsにリダイレクトしないようにする。 同様にhttps→httsのリダイレクトも行われなくなる。

  • URL書き換え禁止

プラグイン設定で「URL自動変換」を有効にしていても、ここにチェックを入れたリソースは自動変換を行ないません。 リンク元ページのhttp/https状態に合わせる形になります。

プラグイン設定について

  • URL自動変換

trueを選択すると[リソース]タグのhttp/https自動変換の拡張が有効になる

  • baseタグ自動書き換え

trueを選択するとコンテンツ内のタグのhttp/https部分を設定に合わせて自動変換する

6.注意事項

$modx->makeUrl()の動作について

makeUrl()内で処理をフックしているため、こちらでもSSL Switcherの設定に従ってURLが生成されるためご注意ください。

QUERY_STRING/POSTデータについて

http->https(or https->http)へリダイレクトする際、QUERY_STRINGも合わせてリダイレクトします。 POSTデータがある場合はHTTP 307を利用します。

HTTPS判定について

https接続の判定は以下の環境変数を参考にしています。

  • HTTPS
  • X-HTTPS
  • HTTP_X_HTTPS

利用しているサーバによってはうまく動作しない場合があり、もし違う環境変数でhttps接続判定ができる場合は以下のプラグイン設定を追加して、その環境変数を設定してください。

&httpsKey=https判定環境変数Key;string;&httpsVal=https判定環境変数Val;string;

判定環境変数Keyに環境変数名、判定環境変数Valにhttps接続時に入る値を入力します。 追加するユーザが多い環境変数についてはSSL Switcher側で取り込んでもいいかなと思ってます。

http/httpsでドメインが違う場合

プラグイン設定に次の設定を追加してhttp/httpsのドメインを入力させる。

&url_http=HTTP側URL;string;&url_https=HTTPS側URL;string;

バイパスモード利用時

バイパスモードを利用しているとリダイレクトがうまく機能しません。 その場合は autoload.php をMODXをインストールしたディレクトリのトップにアップロードしてください。