mod-rewrite - 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>```
解决方案
好的,我发现了:
我删除了每个 :80 vhost 并在文件顶部创建了一个。
<VirtualHost *:80>
RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
推荐阅读
- javascript - 如何在 Electron 应用程序中隐藏或显示菜单标签
- python - 如何在python中估计双高斯拟合的参数
- node.js - 如何根据我的“分支”更改“buildspec.yaml”文件中的命令
- c# - 任何版本的 .NET 都具有可通过代码访问的 Random.Shared 属性吗?
- html - 如何在一个 Jekyll 布局文件中实现多个内容部分?
- php - PHP OAUTH2 "error":"invalid_grant","error_description":"指定的授权码不能被这个客户端应用程序使用。"
- eslint - jhipster 无法加载在“../.eslintrc.json”中声明的插件“@typescript-eslint”:找不到模块“@typescript-eslint/eslint-plugin”
- split - 是否可以在使用 SPLIT() IN BigQuery 创建的数组上使用 STRING_AGG 进行连接
- c++ - 我的 RegSetValueA 函数返回 ERROR_SUCCESS 但不起作用
- java - Android:即使我在 AndroidManifest.xml 中定义了明确的活动类,也无法找到它?