有可能与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代码。

因此,要根据查询参数的存在有条件地设置标头,您将执行类似的操作

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'])会返回true,即使get被接收为空。为了匹配这种行为,您需要使用(^|&)get(=|&|$)