2014-09-26 98 views
0

我试图根据传入的REQUEST_URI在htaccess中设置特定的php_value。我在Apache 2.4中看到有条件块,但我们使用的是2.2,那么有没有办法实现这一点?.htaccess:设置基于传入的php_value REQUEST_URI

例:

我想设置php_value memory_limit 64M只有当传入URI的'/batch-process'一个模式相匹配,否则它永远是32M

目前我能得到mod_rewrite检查request_uri并设置ENV变量,但我错过了如何在htaccess文件中读取这个数据,然后在此基础上设置php_value

这可能吗?

我现在的htaccess的规则是:

RewriteEngine On 
RewriteCond %{DOCUMENT_ROOT}/berightback.html -f 
RewriteRule !^(css|js|img|berightback\.html) /berightback.html [NC,L] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

感谢。

UPDATE

这是我落得这样做。如果还有其他方法,请发表评论。

在php.ini文件中,我碰到了memory_limit的为256M 然后index.php页面上,我检查了传入REQUEST_URI为“/批处理”,如果不存在,确实memory_limit的的背面的ini_set降至32M

似乎并不理想,但无法在大批量处理请求中使用此功能。

回答

0

取决于您如何映射到您的前端控制器。如果您通过重写规则执行此操作,则可以使用<Location>而不是<Directory>块来指定要更改其设置的路径块。 <LocationMatch>让你用同样的东西使用正则表达式

+0

我更新了我的问题,包括我当前的重写conds和规则。我曾尝试在我的虚拟主机中使用,但这似乎也没有工作。在任何甚至加载之前,我都在索引文件中记录了一些日志,并且它从未执行过。 memory_limit在处理之前就会被吹掉。将再试一次。 – 2014-09-29 19:56:58