经过一段时间的搜索和试错后,我得出的结论是我的问题对于谷歌来说有点太特殊了:-)
我有 2 个域和多个子域
例子.org
- cloud.example.org
- wiki.example.org
- *.example.org(该域的所有其他域)应重定向到显示“建设中”图像的 example.org。
贝斯皮尔.de
- blog.beispiel.de
- 同样在这里:*.beispiel.de 应该重定向到 beispiel.de
我的 Apache conf 中每个子域有 1 个文件和 1 个 vHost。我对 https 使用“让我们加密”。
问题:
http://blupp.example.com转到 http s ://blupp.example.com 并且 Firefox 显示连接不安全警告。点击忽略后,它会重定向到主页,但URL 中带有https://blupp.example.com 。
->错误它应该转到 example.com
另一个问题是:
example.com 是我的第一页。所以如果…… 在 beispiel.de 出错,它重定向到第一页:cloud.example.com
->错误我不想混合使用 example.com 和 beispiel.de,但只想租用一台服务器 :-)
这些是我的文件(顺序很重要,我知道 :-)
0_redirects.conf 只做 http 请求 -> https
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule "/" https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
1_cloud-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@...
ServerName cloud.example.com
ServerAlias cloud.example.com
<Directory /var/www/example.com/cloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
wiki.example.com和blog.beispiel.de相同,每个都有一个递增的前缀数字。
我首先尝试让所有 example.com 页面运行,所以我保持 beispiel.de 不变。
现在我尝试了很多方法来为两个主要域创建一个额外的虚拟主机,将其他所有内容重定向到正确的主要示例或beispiel,但失败了。
我试图重定向
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName null
ServerAlias *.example.com
Redirect permanent / example.com
</VirtualHost>
</IfModule>
并将此配置设置在更高阶位置 (100)。
我不知道在这里做什么。有人可以帮忙吗?
此致
埃迪
让您的重定向对每个子域正常工作的最简单的解决方案是将它们设置在自己的
VirtualHost
容器中。第二件事是不要对重定向使用参数化的 mod_rewrite 规则,但正如手册所建议的那样,避免使用 mod_rewrite和 use
Redirect
指令。和类似的
biespiel.de
。考虑到 Apache HTTPD ServerName 和 ServerAlias 匹配取决于顺序,并且第一个匹配将用于 Host: 匹配多个 VirtualHosts 的标头。包含通配符的 ServerAlias 记录没有特殊的优先级
*
。因此,显式ServerName cloud.example.org
VirtualHosts 必须在包含通配符的 VirtualHost 块之前排序ServerAlias *.example.org
。