Apache2:提供(修改)环境变量作为RewriteCond参数

时间:2014-08-01 16:27:23

标签: php regex apache mod-rewrite apache2

我有一个Apache2 RewriteCond指令,它将所有URL重定向到我站点上的子目录,除了一长串异常。

规则如下:(长字符串已替换为foo|bar|baz

RewriteCond %{REQUEST_URI} !^/(foo|bar|baz) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subdir/$1 [QSA,L]

正则表达式匹配所有不以/foo/bar/baz开头的路径,并将其重定向到/subdir/path/request

例如:

/foo/page => /foo/page
/bar/page => /bar/page
...
/not_foo/page => /subdir/not_foo/page
/not_bar/page => /subdir/not_bar/page
...

我想要做的是以编程方式获取此异常列表,以减少代码复制(可能使用PHP的getEnv('VAR'))。我尝试了很多不同的选择,但我无法让它发挥作用。

我的想法是使用RewriteRule[E=ENV:values],但我无法完全理解如何实现这一目标。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

file_get_contents('.htaccess');怎么样?您可以从那里解析文件以获得您要查找的内容。