Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.htaccess中设置和使用owne变量_.htaccess_Variables_Mod Rewrite_Global Variables - Fatal编程技术网

在.htaccess中设置和使用owne变量

在.htaccess中设置和使用owne变量,.htaccess,variables,mod-rewrite,global-variables,.htaccess,Variables,Mod Rewrite,Global Variables,我像这样在.htaccess中设置变量 SetEnv clubhub_path clubhub-ui 我可以用php访问它 $_SERVER['clubhub_path]; 但我想在重写Cond的.htaccess中使用它 RewriteCond %{REQUEST_URI} ^(?!/%{SERVER:clubhub_path}/media/).+ [NC] 我在某个地方找到了这个(%%{SERVER:clubhu_path})应该可以工作,但它不能。我尝试了{}、%、$的所有组合。没有

我像这样在.htaccess中设置变量

SetEnv clubhub_path clubhub-ui
我可以用php访问它

$_SERVER['clubhub_path];
但我想在重写Cond的.htaccess中使用它

RewriteCond %{REQUEST_URI} ^(?!/%{SERVER:clubhub_path}/media/).+ [NC]
我在某个地方找到了这个(%%{SERVER:clubhu_path})应该可以工作,但它不能。我尝试了{}、%、$的所有组合。没有成功


Cheers

SetEnv
设置环境变量,因此它应该可以在
%{ENV:clubhub_path}
中使用,但我已经尝试过了,似乎没有效果

但是,由于可以使用
RewriteRule
s设置环境变量,因此可以这样编写:

RewriteRule ^ - [E=clubhub_path:clubhub-ui]
此规则匹配每个url,但不会将其重写为任何url。只需设置一个环境变量,该变量将在
RewriteCond
s中可用,如:

RewriteCond %{ENV:clubhub_path} ^clubhub-ui$
一旦进入php,它看起来应该完全一样。(在
$\u服务器中
superglobal或
getenv()

更新 但是,您仍然无法使用
RewriteCond
右侧的
%{ENV:variable}
。我认为,如果您使用的是Apache2.4,并且可以使用

在我的测试环境中,这似乎是你想要的(在“/clubhub ui/media”URL上的负匹配,但apache2.4仍然是相当新的,如果你不是自托管的,你可能无法安装它


也许参数和脚本可以实现您的想法。

我想您正在寻找
%{ENV:clubhub_path}
,因为
SetEnv
设置了环境变量。不幸的是,这也不起作用……也许我需要在apache配置中启用一些东西?不确定,但因为这个“clubhub_path”是在同一个文件中,你能不能直接将它写入到重写cond中?是的,我可以,但是:1.有很多规则;2.现在我真的很好奇如何实现;)但是我希望像这样使用重写cond%{REQUEST_URI}^(?!/%{ENV:clubhu path}/media/)。+[NC],似乎不起作用。。。
RewriteCond expr "! '%{REQUEST_URI}' -strcmatch '/%{ENV:clubhub_path}/media/*'"