是否可以使用 htaccess 的 if 条件

Is it possible to have if condition with htaccess

我想用 .htaccess 编写简单的 if / else 条件

这是在php.

中编写的代码
if(isset($_GET['get'])){
    header('Access-Control-Allow-Origin: *');
}

是否有可能与 htaccess 具有相同的条件

if(isset($_GET['get'])){
   <IfModule mod_headers.c>
   Header set Access-Control-Allow-Origin "*"
   </IfModule>
}

你可以,但使用 PHP 代码的 .htaccess 等价物。您当然不能直接在 PHP.

中调用 .htaccess 代码

因此,要根据查询参数的存在有条件地设置 header,您需要执行类似

的操作
RewriteEngine on

RewriteCond %{QUERY_STRING} (^|&)get=[^&]+ [NC]
RewriteRule ^ - [env=GET]

Header set Access-Control-Allow-Origin "*" env=GET

只需确保 mod_headers 模块也已加载。


请注意,当且仅当 get 带有一些值时,上述正则表达式才会通过。我相信 PHP 的 isset($_GET['get']) 会 return true 即使 get 收到 。要匹配此行为,您需要改用 (^|&)get(=|&|$)