2014-09-26 41 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