首页 > 解决方案 > Apache mod_rewrite - 优先级不起作用?

问题描述

我的脑子都快疯了。我没有发现错误!我只想要一些子域:

CLOUD、BITWARDEN 和 NORMAL(例如 cloud.example.com、tresor.example.com 和 example.com)

:80 云 -> :443 云(有效)

:80 bitwarden -> :443 正常(错误)

:443 bitwarden -> :443 bitwarden (有效)

:80 正常 -> :443 正常(有效)

# CLOUD 
<VirtualHost *:443>
SSLEngine on
ServerName cloud.example.com
ServerAlias *.cloud.example.com
DocumentRoot /var/www/cloud.example.com/
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/subexample2/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/subexample2/privkey.pem
</VirtualHost>
<VirtualHost *:80>
ServerName cloud.example.com
ServerAlias *.cloud.example.com
Redirect permanent / https://cloud.example.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =cloud.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

# BITWARDEN 
<VirtualHost *:443>
SSLEngine on
ServerName tresor.example.com
ServerAlias *.tresor.example.com
ProxyPass / http://127.0.0.1:8000/
ProxyPreserveHost On
ProxyRequests Off
RequestHeader set X-Real-IP %{REMOTE_ADDR}s
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/subexample2/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/subexample2/privkey.pem
</VirtualHost>
<VirtualHost *:80>
ServerName tresor.example.com
ServerAlias *.tresor.example.com
Redirect permanent / https://tresor.example.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =tresor.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

# NORMALE  example
<VirtualHost *:443>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /var/www/subexample/
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/subexample2/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/subexample2/privkey.pem
</VirtualHost>

<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
Redirect permanent / https://example.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>```

标签: mod-rewritednsapache2subdomainvirtualhost

解决方案


好的,我发现了:

我删除了每个 :80 vhost 并在文件顶部创建了一个。

<VirtualHost *:80>
RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

推荐阅读