服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

我怎样才能SetEnv基于预先重写的URI或重写后的查询参数?

所以在Wordpress中有一个文件,wp-content / blogs.php,通过Wordpress上传文件。 WP .htaccess中有一个重写规则,将www.blah.com/files/11/01/filename.mp3格式的URL重写为格式为www.blah.com/…/wp-content/blogs的URL .PHP?文件= FILENAME.MP3。 RewriteRule ^(./ )?files /(。)wp-content / blogs.php?file = $ 2 [L] 所以这里是问题:我们已经开启了PHP文件的gzip。 我需要根据查询参数“file”在blogs.php上closures它。 (不仅仅是因为你不应该gzip二进制文件,而是因为gzip压缩.mp3在Firefox和Mac上为Quicktime插件创build了严重的问题。) 但是以下SetEnvIf不适用于通过blogs.php提供的任何文件 – Request_URI总是以.php结尾 SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary 以下方法通过closures通过blogs.php提供的所有文件的gzip来解决问题: <Location /michael/blah/wp-content/blogs.php> SetEnv no-gzip </Location> 但这不是一个好的解决scheme,因为我想通过blogs.php提供的非二进制文件进行压缩。 所以我真正想要的是获取原始 URI的方式,而不是重写的URI,因为原始URI确实以.mp3结尾。 或者,我需要在重写的URI(file = filename.mp3)末尾访问查询参数。 比如,像这样的东西就可以工作,如果它存在的话,那不是: SetEnvIfNoCase Original_Request_URI \.mp3$ no-gzip dont-vary 看起来有一个variablesTHE_REQUEST可以在一个RewriteRule中工作,但对SetEnv来说似乎不可用。 有任何想法吗? 谢谢! 让我知道如果我违反任何规则,这是我第一次在这里发表。