是否可以使用htaccess条件

时间:2015-02-19 13:04:32

标签: php regex .htaccess mod-rewrite if-statement

我想用.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>
}

1 个答案:

答案 0 :(得分:5)

您可以使用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带有某些值时,上述正则表达式才会通过。我相信,即使isset($_GET['get'])收到,PHP true也会返回get。要匹配此行为,您需要使用(^|&)get(=|&|$)代替。