我使用Apache24创建了WordPress的新安装(在FreeBSD上,这不会有什么不同),比如使用maindomain.com
. 我用Let’s Encrypt创建了一个SSL证书,一切正常,DNS指向我的服务器的IP。
然后,我使用子目录启用了多站点功能。我创建了另一个网站,位于https://maindomain.com/site1
. 一切正常,不同的网站使用我安装和激活的两个不同主题。
我还为创建了另一个SSL证书site1.com
, 并将该url的DNS指向我服务器的IP。
我已经设置了2个单独的Apache配置文件,每个虚拟主机一个,每个指向各自的SSL证书文件(位于单独的目录中)。此时,一切正常(主站点和子目录中的第二个站点)。
现在我不能site1.com
正确工作。当我转到site1的“站点管理”页面时,进入“信息”选项卡并更改Site Address (URL)
到site1.com
, 导航到site1.com
将我重定向到maindomain.com
.
我的htaccess文件是标准的:
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
RewriteRule . index.php [L]
我的Apache配置文件(在可用的站点中,并启用了与站点的符号链接)也是相当标准的:
<VirtualHost *:443>
ServerName www.site1.com
ServerAlias site1.com
SSLEngine on
SSLCertificateFile "/usr/local/etc/letsencrypt/live/site1.com/cert.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/site1.com/privkey.pem"
SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/site1.com/fullchain.pem"
<FilesMatch "\\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd-ssl_request.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \\"%r\\" %b"
<Directory "/usr/local/www/apache24/data/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog "/var/log/site1.com.ssl-error.log"
CustomLog "/var/log/site1.com.ssl-access_log" combined
</VirtualHost>
<VirtualHost *:80>
ServerName www.site1.com
ServerAlias site1.com
Redirect permanent / https://site1.com/
</VirtualHost>