複数のドメイン名とサブドメイン名を持つVPSに modx サイトがあります。 modxサイトは、「プライマリ」ドメイン名の「プライマリ」サブドメイン、つまりwww
.intendedname
。tldを使用する必要があります。問題は、時間が経つにつれて、サイトがビデオ、画像、さらにはページや(内部)リンクなどのコンテンツへのリンクに別のサブドメインを不思議に使用し始めることです。他のサブドメインはもちろんこのコンテンツを提供しません。 modxキャッシュをクリアすると、元の状態が復元されます。ただし、問題は後で再び発生します。
VPSにはドメインが登録され、サブドメインとしてVPSのIPを指す複数のAレコードがあります。パブリックコンテンツサーバーとして使用することを意図した「プライマリ」ファンがあります。他のものはdocs.
やtest.
などに似ています。
その上に、私はdynamic-dnsサービスclientをマシンのno-ipからインストールし、動的ドメイン名をバインドしています。それは完全に異なるドメイン名を与えます。私はもともとsshログインに使用し、まったく異なるサイトを提供していました。
nginx
server は、さまざまなサブドメインを適切な場所に書き換えるために適切に使用されます。
editmodxテンプレートは<base href="[[++site_url]]" />
を使用するテンプレートを使用します。
問題に対する現在の「解決策」は、書き換えを使用してeverythingを「プライマリ」ドメインとサブドメインに書き換えることです。サイトのnginx構成ファイルでは、rewrite
directive を(当然)使用して、予期しないserver_name
entries (つまり、他のサブドメイン)を書き換えますserver
block このタスク専用。
したがって、これを使用すると、メインサイトは基本的に機能しますが、他のすべての機能(ドキュメント)は役に立たなくなります。
この書き換えが設定される前の「解決策」は、modxキャッシュを定期的にクリアすることでした。元のmodxコンテンツは破損していません。キャッシュ内のファイルのみが破損しています。
実際に問題が何であるかを見つけて修正するにはどうすればよいですか?
MODxテンプレートで動的ベースhref
プロパティを使用していますか?その場合、これをベースhref
にしたい実際のWebサイトアドレスに設定し、MODxキャッシュをクリアすると、すべての設定が完了します。
アーロンが示唆するように、それはベースhref
問題のように聞こえます。
ただし、<base href="http://domain.tld">
にハードコードすることは誰にも勧めません。サイトをステージング環境にコピーしたり、サイトを他の場所に移行したりする場合、これは苦痛です。
代わりに、単純な解決策は、ベースhref
値を動的に解決し、キャッシュされないようにすることです:<base href="[[!++site_url]]">
。これを、使用すべきではないドメインからの書き直しと組み合わせると、うまくいくはずです。