1つのMovableTypeでドメインの異なる複数サイトのフォームを運用している時に、それぞれのドメインでA-Form確認画面や完了画面を動かしたい場合があります。

例えば、MTでhost1, host2の2サイト生成しているとして、

 mt.example.com ・・・MT管理画面
 host1.example.com
 host2.example.com

host1.example.com/path/to/aform_engine.cgi
host2.example.com/path/to/aform_engine.cgi でA-Formを動かしたい、といったケースです。

A-Formは、プラグイン設定から 「 スクリプト類設置ディレクトリのURL(aform_engine.cgiなどの場所)」を任意のパスに変更できます が、この設定はシステム全体で1つです。従っていずれか1つのドメインについてのみの設定となります。

複数サイトでのフォーム運用の場合は、テンプレートでフォームの送信先を直接1箇所に書き換えるか、
Alies設定によって、1つのA-FormのCGIに対して複数のサイトからアクセス可能とするか、の2つの方法が考えられます。

1) A-Formテンプレートに直接aform_engine.cgiのURLを記述する方法

前述のスクリプト類設置ディレクトリの設定はフォームの送信先(action)に適用されます。

<form action="フォームの送信先" ~>

このフォームの送信先を直接書き換えることで対応することは可能です。

aform_form.tmpl
aform_confirm.tmpl
これらのテンプレートの
タグのactionに、直接aform_engine.cgiのURLを記述してください。
<form action="{aform_engine.cgiのURL}" ~>

これでフォームの飛び先を変更することができます。

2) サーバーのAlias機能を使って参照先を変更する方法

または、サーバーのAlias機能を使って参照先を変更する方法も考えられます。
apacheのAliasの場合は次のようになります。

<VritualHost *:80>
ServerName mt.example.com
Documentroot /var/www/mt/htdocs
</VirtualHost>
<VritualHost *:80>
ServerName host1.example.com
Documentroot /var/www/host1/htdocs
Alias /mt/plugins/AForm/ /var/www/mt/htdocs/mt/plugins/AForm/
</VirtualHost>
<VritualHost *:80>
ServerName host2.example.com
Documentroot /var/www/hos2/htdocs
Alias /mt/plugins/AForm/ /var/www/mt/htdocs/mt/plugins/AForm/
</VirtualHost>

上の例では、host1.example.com、host2.example.com共に/mt/plugins/AForm/にアクセスされたら
/var/www/mt/htdocs/mt/plugins/AForm/を参照する形になっています。

nginxでも同様な機能があります。

対象製品
対象バージョン
すべてのバージョン
記事更新日
2020年1月29日