【发布时间】:2019-12-04 07:43:09
【问题描述】:
我有一个网站,我正在努力迁移以通过 .htaccess 使用虚拟主机配置。弄清楚我是否应该拥有访问权限。
我的重写是为 php slim 框架删除 index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
当我进行从 .htaccess 移动到生产服务器路由的更改时失败了。我意识到重写并没有在 :80 虚拟主机上进行,而是在 :443 letsencrpyt 虚拟主机中指定。
在紧要关头,我只是将上面的重写移到了letsencrpyt中,然后就可以工作了。
似乎 certbot 使用 :80 端口来创建 :443 ,所以我无法删除它而只能使用生成的端口。现在我只是在复制两者之间的逻辑。
我现在对这种类型的重写有疑问,我应该把它留在 .htaccess 中吗?或者当我对默认端口 80 进行更改时,有没有办法使用 certbot 更新 ssl vhost?
【问题讨论】:
-
使用加密证书(无论是 letencrypt 还是任何其他替代方案)的全部意义在于能够使用
https协议,因此端口 443。你不想继续使用http,所以端口 80,你想停用它。 -
@arkascha 我知道 443 是 ssl。 certbot 似乎使用 80 中的内容来构建 443 虚拟主机。因此我的困境。
-
所以?为什么这是个问题?设置证书的脚本不关心路径,它实际上启动了一个单独的 http 服务器,与正常运行的服务器无关。重写不会发生,当时也不需要。
-
@arkascha 我关心的不是 443。现在我在 http 和 https 虚拟主机中复制逻辑。由于 certbot 使用 http 来构建 https,我想知道是否最好将其留在 htaccess 中,或者是否有办法在 vhost conf 文件中管理它。
-
我发布了对该特定问题的答案。但是我还是不明白为什么你认为你必须在http主机中配置这样的规则。不管怎样,玩得开心!
标签: apache .htaccess lets-encrypt certbot