Letsencrypt 虚拟主机与 apache 上的 htaccess
Letsencrypt virtual host vs htaccess on apache
我有一个网站,我正在努力将其移动到通过 .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?
考虑到您对问题的评论,我现在知道您的实际问题是:
"How is it possible to share configuration directives between different hosts in an apache http server? "
使用 Include
语句很容易做到这一点:
<VirtualHost *:80>
# include the rules common for http and https
Include sites-includes/shared-config.inc
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
# include the rules common for http and https
Include sites-includes/shared-config.inc
</VirtualHost>
</IfModule>
使用它,您现在可以在文件 sites-includes/shared-config.inc
(或任何您想放置它的地方)中定义通用配置指令。
我有一个网站,我正在努力将其移动到通过 .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?
考虑到您对问题的评论,我现在知道您的实际问题是:
"How is it possible to share configuration directives between different hosts in an apache http server? "
使用 Include
语句很容易做到这一点:
<VirtualHost *:80>
# include the rules common for http and https
Include sites-includes/shared-config.inc
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
# include the rules common for http and https
Include sites-includes/shared-config.inc
</VirtualHost>
</IfModule>
使用它,您现在可以在文件 sites-includes/shared-config.inc
(或任何您想放置它的地方)中定义通用配置指令。