これはJoomla 2.5用ですが、3.xシリーズでも同じだと思います。
私は、NATファイアウォールの背後に座っているサーバーを持っています。そのため、サーバーの実際のIPアドレスは192.168アドレスですが、ユーザーがそれに到達するには、外部に設定されているwww.mydomain.comとしてアクセスします。ファイアウォールのアドレス(192.168アドレスではない)。
ユーザーが作成されると、次のようなデフォルトのメッセージが送信されます。
This email contains your username and password to log in to http:// 192.168.1.100
このアドレスに到達できません。メッセージを次のようにしたいと思います。
This email contains your username and password to log in to http://www.mydomain.com
Joomlaのソースコードを変更してメッセージを強制的に変更することもできますが、これを解決する簡単な方法があると思います。森に近づきすぎているため、森が表示されないだけで苦しんでいます木。
192.168.1.100をwww.mydomain.comにマップするのは、Hostテーブルにエントリを置くのか、ローカルDNSにPTRレコードを置くのと同じくらい簡単なのかと思います。
Plugins/user/joomla/joomla.phpを編集します。
_$emailBody = JText::sprintf(
'PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY',
$user['name'],
$this->app->get('sitename'),
JUri::root(),
$user['username'],
$user['password_clear']
);
_
JUri::root()
を_http://www.mydomain.com
_に置き換えます
Configuration.phpで$ live_siteを設定してみてください。
ロケーション管理者に「PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY」の言語オーバーライドを作成します。
PLG_USER_JOOMLA_NEW_USER_EMAIL_BODY="Hello %s,\n\n\nYou have been added as a User to HTTP://www.mydomain.com (%s) by an Administrator.\n\nThis email contains your username and password to log in to %s\n\nUsername: %s\nPassword: %s\n\n\nPlease do not respond to this message as it is automatically generated and is for information purposes only."
すべての%sを%1 $ s、%2 $ s、%3 $ s、%4 $ sで変更します%2 $ sを除外するとIP番号が抑制されます
最も簡単な方法は、そのエントリを含む言語ファイルを編集することです(ハードコードしてください)。
言語ファイルは、フォルダーlanguage
にあります(インストールされている各言語の言語フォルダー内にあります)。
私のサイトではドメインを取得しているため、サーバーに何かが正しく設定されていない可能性があります。
何が起こっているのかがわかりました-私を正しい道に導いてくれた提案に感謝します。
この場合の問題は、アカウントを作成する管理者がサーバーと同じファイアウォールの内側にいるためでした。メッセージに入れられたシステムの名前は、セッション環境から「HTTP_Host」の値を取得することによって作成され、接続先のURLを反映しています。このURLは名前ではなくIPアドレスでした。ファイアウォールの背後にいる場合は、ファイアウォールの背後にある値が取得されます。ファイアウォールの外側にある場合は、ファイアウォールの外側にある値が取得されます。これが、サーバーがホスト環境にある場合に通常正しい答えを与える理由です。
これを正しく動作させるには、分割ビューを使用してDNSを設定する必要があります。これにより、管理者は常にwww.mydomain.comに接続します。ファイアウォールの内側にいる場合、DNSは192.168アドレスを提供します。ファイアウォールの外側にいる場合、シンボルwww.mydomain.comがIPアドレスに解決されるときに外部IPを受け取ります。
次に、メッセージが送信されると、どちらの場合もメッセージの本文にはwww.mydomain.comが含まれます。
送信されたhttp://値をオーバーライドする方法については、はい、plugins/user/joomla/joomla.phpのコードを書き直すことに関する提案は正しいです。 thisの場合を除いて-サイトは拡張「Login One」を使用して同時ユーザーセッションを制限し、拡張は標準のJoomlaコードを独自のプラグインに置き換えたため、変更する必要がありました。標準の場所ではない拡張コード。
だから、すべての提案に感謝します、それらなしで答えに到達することははるかに困難だったでしょう。