我正在创build一个Mailman,Apache2.4和Postfix的设置。 我的问题如下。 当我使用域名访问邮件列表时,我在浏览器中得到了正确的结果。 这里的图片

但是,如果我试图直接使用我的服务器的IP地址访问,我得到一个不同的页面,邮件列表丢失。 这是它的样子:
所需的结果是获得完全相同的页面。
apache2configuration如下:
<Directory /usr/lib/cgi-bin/mailman/> AllowOverride None Options +ExecCGI AddHandler cgi-script .cgi # (Old apache2.2 style configuration:) # Order allow,deny # Allow from all # New apache 2.4 configuration: Require all granted </Directory> <Directory /var/lib/mailman/archives/public/> Options FollowSymlinks AllowOverride None # (Old configuration:) # Order allow,deny # Allow from all # New apache 2.4 configuration: Require all granted </Directory> <Directory /usr/share/images/mailman/> AllowOverride None # (Old configuration:) # Order allow,deny # Allow from all # New apache 2.4 configuration: Require all granted </Directory> <VirtualHost *:80> ServerName lists.example.org DocumentRoot /var/www/lists ErrorLog /var/log/apache2/lists-error.log CustomLog /var/log/apache2/lists-access.log combined <Directory /var/lib/mailman/archives/> Options FollowSymLinks AllowOverride None </Directory> Alias /archives/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm ScriptAlias /create /usr/lib/cgi-bin/mailman/create ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo ScriptAlias /options /usr/lib/cgi-bin/mailman/options ScriptAlias /private /usr/lib/cgi-bin/mailman/private ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo/ </VirtualHost>
编辑:我在这里包括我的mm_cfg.py文件(邮件configuration):
from Defaults import * MAILMAN_SITE_LIST = 'mailman' DEFAULT_URL_PATTERN = 'http://%s/' # PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private' PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/archives/%(listname)s' IMAGE_LOGOS = '/mailman-icons/' # Default domain for email addresses of newly created MLs DEFAULT_EMAIL_HOST = 'lists.example.org' # Default host for web interface of newly created MLs DEFAULT_URL_HOST = 'lists.example.org' VIRTUAL_HOSTS.clear() add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST) DEFAULT_SERVER_LANGUAGE = 'en' USE_ENVELOPE_SENDER = 0 # Still used? DEFAULT_SEND_REMINDERS = 0 MTA='Postfix'
除此之外,我运行以下命令禁用默认站点:
sudo a2dissite 000-default
我注意到,如果我不禁用000默认,访问使用IP地址的网页给了我默认的Apache页面,说一切正常。
我想知道是否有直接的IP访问问题的一些优雅的解决scheme,使它显示相同的页面,我看到当我使用的域名。
编辑:我试图改变(内部mm_cfg.py):
VIRTUAL_HOSTS.clear() add_virtualhost("104.131.98.138","lists.example.org")
如所build议的。 当我使用url lists.example.org时,我得到正确的页面,但是当我使用IP地址时,我得到这个: 
但请注意,这次电子邮件地址是正确的。
当两行都存在时,我也得到相同的结果:
VIRTUAL_HOSTS.clear() add_virtualhost(DEFAULT_URL_HOST,DEFAULT_EMAIL_HOST) add_virtualhost("104.131.98.138","lists.example.org")
首先请原谅我误导你,因为我误解了你的意图。 现在,据我所知,你的意图是aliasing 104.131.98.138 lists.freedomlayer.org – 所以当你浏览104.131.98.138和lists.freedomlayer.org你会得到相同的结果 – YES?
不幸的是,邮递员是不可能的。 Mailman希望每个列表都有一个唯一的URL。 更多信息,请从邮递员文件点击这个常见问题
无论如何,你可以在Apache中设置redirect。 所以每当用户不使用http://lists.freedomlayer.org去邮递员网页(即使用http://104.131.98.138 ),它将被redirect到http://lists.freedomlayer.org 。
这里的Apacheconfiguration让你的redirect工作
RewriteEngine On RewriteCond %{HTTP_HOST} !^lists\.freedomlayer\.org [NC] RewriteRule ^(.*)$ http://lists.freedomlayer.org/$1 [R=301,L]