メールサーバー用にOutlookとThunderbirdの自動検出機能を構成しようとしています。
config-v1.1.xml
をThunderbird.php
にリダイレクトし、autodiscover.xml
をOutlook.php
にリダイレクトするために、次のRewriteRule
を持つ仮想ホストエントリを追加しました。
NameVirtualHost 192.168.0.153:80
<VirtualHost 192.168.0.153:80>
ServerAdmin [email protected]
DocumentRoot /var/www/webroot
ServerName autconfig.test.int
RewriteEngine On
RewriteRule ^/mail/config-v1\.1\.xml$ Thunderbird.php [NC,L]
RewriteRule ^/autodiscover/autodiscover\.xml Outlook.php [NC,L]
</VirtualHost>`
エラー404が見つからないので、誰かがエラーを教えてもらえますか? .htaccess
ファイルを作成していません。
次のように<Directory>
句でリダイレクトを定義する必要があります。
<VirtualHost 192.168.0.153:80>
ServerAdmin [email protected]
DocumentRoot /var/www/webroot
ServerName autconfig.test.int
<Directory "/var/www/webroot">
Allow from All
AllowOverride all
RewriteEngine On
RewriteRule ^/mail/config-v1\.1\.xml$ Thunderbird.php [NC,L]
RewriteRule ^/autodiscover/autodiscover\.xml Outlook.php [NC,L]
</Directory>
</VirtualHost>
RewriteRule ^/mail/config-v1\.1\.xml$ Thunderbird.php [NC,L] RewriteRule ^/autodiscover/autodiscover\.xml Outlook.php [NC,L]
内部書き換えを発行するときに、サーバー(または仮想ホスト)コンテキストで相対置換文字列を指定することはできません。 DocumentRoot(またはServerRoot)に関連しているとは見なされません。 Apache docs に示されている例では、これは「無効、サポートされていません」と単純に述べられています。私のテストサーバーでは、これは実際には400 Bad Request(404 Not Foundではない)になりますが、それは間違いなくサーバーの構成に依存します。
サーバーコンテキストでは、絶対ファイルシステムパスまたはドキュメントルート相対(スラッシュで始まる)URLパスのいずれかを指定する必要があります。例えば:
RewriteRule ^/mail/config-v1\.1\.xml$ /Thunderbird.php [NC,L]
RewriteRule ^/autodiscover/autodiscover\.xml /Outlook.php [NC,L]