使用Apache RedirectPerl将HTTP重定向到HTTPS用于使用modperl的站点
我有一个Apache2.4站点,它提供由使用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
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]