如何使用VirtualHost托管不同的常规网页和TOR网页?

时间:2017-04-21 10:06:41

标签: apache apache2 virtualhost tor

我想在一个apache2安装上托管一个常规网站和一个TOR网站。我还在我的普通网站上使用了Let's Encrypt证书。目前,站点可用文件中的000-default.conf如下所示:

<VirtualHost *:80>
    ServerName website1.com
    ServerAlias www.website1.com
    ServerAlias alias.nu
    ServerAlias www.alias.nu
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    RewriteEngine on
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]
</VirtualHost>

<VirtualHost *:80>
    ServerName torlink.onion
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/torhtml
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我跑了:

sudo a2dissite 000-default
sudo a2ensite 000-default
sudo service apache2 restart

但无论我做什么,每当我进入tor链接时,常规网站都会显示(它还会提示我接受证书,因为TOR域未添加到证书中,因为使用Let的加密是不可能的)

我有一种感觉,可能是因为RewriteRule,但这应该只与我认为的ServerName和ServerAliasses相匹配。

1 个答案:

答案 0 :(得分:0)

我不知道为什么,但它现在有效。我重新启动了apache2和tor,重新启动了一些a2dissite和a2nsite,它神奇地起作用。

编辑:我可能已经发现了。我删除了HTTPS重写。我的文件现在看起来像这样:

<VirtualHost *:80>
    ServerName Torlink.onion
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/torhtml
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
    ServerName website.com
    ServerAlias www.website.com
    ServerAlias alias.nu
    ServerAlias www.alias.nu
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    RewriteEngine on
    Redirect permanent / https://www.website.com
</VirtualHost>