1

Windowsにwamppサーバーがインストールされています。このサーバーでは、仮想ホストを使用していくつかのプライマリ ドメインとともに複数のサブドメインを実行しています。要件は、すべてのサブドメインに robots.txt を自動的に実装することでした。例えば:

site1.example.com

site2.example.com

site3.example.com

site1.example.net

site2.example.net

そのため、http.conf に次のように書きました。

Alias /robots.txt D:/wampp/static-files/override-robots.txt

上記はexample.comとexample.netのすべてのサブドメインの要件を満たし、作成されたすべての新しいサブドメインにはデフォルトでこのrobots.txtがあり、それぞれに個別のrobots.txtを配置する必要はありませんが、問題はいくつかプライマリ ドメインもこのサーバー上にあり、robots.txt も上記から実行されます。例えば:

www.primarydomain1.com

www.primardomain2.com

今、私が欲しいのは、example.com と example.net のすべてのサブドメインで、すべてのプライマリ ドメインを除いて上から robots.txt が自動的に実行されることです。Apache Alias はこれを行う最良の方法ではない可能性があるため、それに関するヘルプやヒントは非常に役立ちます。

ありがとう

4

1 に答える 1

3

いくつかの試行錯誤の後、私はこれに対する解決策を見つけました。ここで共有すると、誰かを助けるかもしれないと思います:

基本的に、 httpd.conf ファイルに次のように書いています。

Alias /robots.txt D:/wampp/static-files/override-robots.txt

したがって、これはすべてのドメインとサブドメインに対して実行されますが、各ドメイン/サブドメインの vhosts コンテナー内の vhosts ファイル、つまり httpd-vhosts.conf で定義されている特定のドメイン/サブドメインに対してオーバーライドできます。たとえば、 www.primarydomain1.com に対して異なる robots.txt を提供する必要がある場合:

<VirtualHost 212.212.212.212>
  DocumentRoot "D:/WebSites-Data/primarydomain1.com"
  ServerName primarydomain1.com
  ServerAlias www.primarydomain1.com
  ErrorLog "logs/primarydomain1.com-error.log"
  CustomLog "logs/primarydomain1.com-access.log" combined
  Alias /robots.txt D:/WebSites-Data/primarydomain1.com/this-robots.txt
</VirtualHost>

したがって、誰かが www.primarydomain1.com/robots.txt にアクセスすると、Apache は robots.txt を提供します。

D:/WebSites-Data/primarydomain1.com/this-robots.txt

他のドメイン/サブドメインの場合は、次の場所からサービスを提供し続けます:

Alias /robots.txt D:/wampp/static-files/override-robots.txt

これは、vhosts コンテナーで定義すると、特定のドメインの httpd.conf の一部の設定をオーバーライドできるという事実にもつながります。

上記の解決策は私にとってはうまくいきます。このソリューションの短所があれば、私と共有してください。

ありがとう

于 2013-04-25T07:35:43.767 に答える