使用Apache RedirectPerl将HTTP重定向到HTTPS用于使用modperl的站点

使用Apache RedirectPerl将HTTP重定向到HTTPS用于使用modperl的站点,apache,redirect,https,Apache,Redirect,Https,我有一个Apache2.4站点,它提供由modperl通过HTTPS生成的内容。相关的位置部分如下: <Location /> SetHandler modperl PerlResponseHandler MyService </Location> 因此,如何使用redirectperl将整个Apache站点从HTTP重定向到HTTPS,包括那些由modperl支持的页面?要重定向站点中的任何路径,您可能需要使用mod_rewrite。这些规则应该起作用: Re

我有一个Apache2.4站点,它提供由
modperl
通过HTTPS生成的内容。相关的
位置
部分如下:

<Location />
  SetHandler modperl
  PerlResponseHandler MyService
</Location>

因此,如何使用
redirectperl
将整个Apache站点从HTTP重定向到HTTPS,包括那些由
modperl
支持的页面?

要重定向站点中的任何路径,您可能需要使用
mod_rewrite
。这些规则应该起作用:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]

(我已经从这个问题中删除了
perl
mod_perl
标记。在服务器关心如何为内容提供服务之前,重写就已经发生了。)

太好了,似乎工作正常。我仍然不明白为什么另一种使用
RedirectPermanent
的方法(即使用
mod_alias
而不是
mod_rewrite
的方法)也不起作用,但这现在只引起学术界的兴趣。@菜鸟099:你的原始版本确实起作用。但它只重定向单个路径
/
。我的版本重定向服务器上的所有路径。您可能可以使用而不是
重定向
来执行某些操作。
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]