Я пытаюсь настроить функцию автообнаружения Outlook и Thunderbird для своего почтового сервера.
Я добавил запись виртуального хоста со следующим RewriteRule
перенаправить config-v1.1.xml
к thunderbird.php
и autodiscover.xml
к outlook.php
.
NameVirtualHost 192.168.0.153:80
<VirtualHost 192.168.0.153:80>
ServerAdmin postmaster@test.int
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 not found? Я не делал никаких .htaccess
файл.
Вы должны определить перенаправления в <Directory>
предложение вроде этого:
<VirtualHost 192.168.0.153:80>
ServerAdmin postmaster@test.int
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]
Вы не можете указать родственник строка подстановки контекст сервера (или vhost) при выдаче внутренняя перезапись. Он не рассматривается как относящийся к DocumentRoot (или ServerRoot). Примеры, приведенные в Документы Apache простое состояние это «недействительно, не поддерживается». На моем тестовом сервере это фактически приводит к 400 неверному запросу (а не к 404 Not Found) - хотя это, несомненно, будет зависеть от конфигурации сервера.
В контексте сервера вам необходимо указать либо абсолютный файловая система path или относительный URL-путь относительно корня документа (начинающийся с косой черты). Например:
RewriteRule ^/mail/config-v1\.1\.xml$ /thunderbird.php [NC,L]
RewriteRule ^/autodiscover/autodiscover\.xml /outlook.php [NC,L]