Apache Location 指令不起作用

Apache Location 指令不起作用

由于某种原因,我无法在我的 Apache 上执行以下指令。如能得到任何帮助我将不胜感激。

<Location "/(login.php|register.php)">
 RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Location>

但是以下有效:

<Location "/login.php">
     RewriteEngine On
     RewriteCond %{HTTPS} off
     RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Location>

答案1

如果您要使用正则表达式,则需要LocationMatch

http://httpd.apache.org/docs/2.2/mod/core.html#locationmatch

编辑:应该在 ServerFault 上

答案2

您还没有提到您的 apache 版本,但是假设是 2.2 或 2.4,“~”会激活 Location 指令的正则表达式匹配器。

<Location ~ "/(login.php|register.php)">
 RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Location>

应该适合你的情况。

相关内容