为什么我的 Apache LocationMatch 指令不起作用?

为什么我的 Apache LocationMatch 指令不起作用?

我需要帮助让 Apache 正常LocationMatch工作。

我正在尝试设置一个 cobbler 服务器,默认情况下它需要 SSL。我想重写它,以便人们可以使用http://服务器/cobbler_web相反,以及https://服务器/cobbler_web,它会将它们带到同一个页面。我尝试在 URL 中使用LocationMatch匹配,如下所示:cobbler_web

### Force SSL only on the WebUI
<VirtualHost *:80>
    <LocationMatch "^/cobbler_web/">
       RewriteEngine on
       RewriteRule ^(.*) https://%{SERVER_NAME}/%{REQUEST_URI} [R,L]
   </LocationMatch>
</VirtualHost>

但无论我在 LocationMatch 行上尝试什么,都不起作用。我尝试了上面看到的行,以及.*cobbler_web.*、 和^/cobbler_web/.*等。毫无效果。

如果我将其LocationMatch完全删除,它就可以起作用。

谢谢。

答案1

如果您无论如何都要打开重写引擎,只需使用它来匹配位置:

   RewriteRule ^/cobbler_web/ https://%{SERVER_NAME}/%{REQUEST_URI} [R,L]

答案2

不确定为什么这种配置不起作用,但在这个简单的情况下,普通的旧配置<Location "/cobbler_web/">就足够了。

相关内容