apache - apache mod_rewrite 让我们加密不重定向
问题描述
我正在编写一个虚拟主机以允许让我们加密通过 http 和请求到 https 的任何其他请求来访问文件
这是我完整的虚拟主机配置
<VirtualHost *:80>
ServerAdmin admin@{{ domain_name }}
ServerName {{ domain_name }}
ServerAlias {{ domain_name }}
DocumentRoot /var/www/letsencrypt
<Directory /var/www/letsencrypt>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond ^/.well-known/acme-challenge$ [NC]
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
当我评论我的 RewriteCond 时,我被重定向到 https,但我无法让我的 RewriteCond 工作。
解决方案
我的 vhost conf 包含两个错误,一个在RewriteCond
conf 中的重写位置上,一个在 rewrite 的位置上。
这里是正常运行的:
<VirtualHost *:80>
ServerAdmin admin@{{ domain_name }}
ServerName {{ domain_name }}
ServerAlias {{ domain_name }}
DocumentRoot /var/www/letsencrypt
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge [NC]
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
<Directory /var/www/letsencrypt>
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error-http-{{ domain_name }}.log
CustomLog ${APACHE_LOG_DIR}/access-http-{{ domain_name }}.log combined
</VirtualHost>
推荐阅读
- python - 使用 NumPy 函数计算 Pandas 中的加权平均值
- r - 在 igraph 中添加新的顶点属性
- javascript - 如何在 Javascript 中更改此类型的结构
- selenium - JSR223 采样器的 WDS.sampleResult.sampleStart()
- node.js - 将来自用户的消息添加到数组中并随机选择
- flutter - Flutter:如何将 JSON 的元素转换为列表?
- android-studio - 在 Flutter 错误日志中,如何找到日志中命名的对象?
- spring-security - 使用 Spring Webflux 在 Spring AOP 中获取当前登录用户
- c++ - 当类型是指针时,模板类方法特化失败
- redis - 如何从 Reis cli 连接到 Redis 服务器?