2012-04-09 4 views
4

업로드 크기 제한을 변경하려고합니다. 디렉토리는 항상이기 때문에 나는 내 가상 호스트의 <Directory>에서 직접 할 수 없어, 나는 아파치 설정에서 이러한 지침, (일부 변경할 수 없습니다 사용 위해서는 ini_set) 불행하게도request_uri에 따라 PHP ini 지시어가 디렉토리마다 다릅니다.

php_value session.gc_maxlifetime 3600 
php_value max_input_time   3600 
php_value max_execution_time  3600 
php_value upload_max_filesize 10M 
php_value post_max_size   110M 

을 변경해야합니다 알고 같은 (전 프론트 컨트롤러를 사용하고 있습니다. 따라서 모든 요청은 index이 적절한 컨트롤러에 파견됩니다 - 나는 Symfony를 사용합니다.)

내 질문에 다음과 같은 질문을 던지면 어떻게됩니까? 나는 특정 어플리케이션에 대해서만 값을 설정하고 싶지는 않습니다.

+2

무엇이 문제입니까? – Jon

+0

방금 ​​내 질문을 업데이트했습니다. – haltabush

답변

2

전방 컨트롤러에 매핑하는 방법에 따라 가능합니다. 다시 작성 규칙을 통해 작업하는 경우 <Directory> 블록 대신 <Location> 블록을 사용하여 설정을 변경하려는 경로를 지정할 수 있습니다. <LocationMatch>을 사용하면 같은 것을 regexp로 사용할 수 있습니다.

외부 모든 URL 정말 /index.php?로 시작하는 경우 특히 이러한 요청을 리디렉션 규칙을 설정하는 것이 좋습니다 :

RewriteEngine on 
RewriteRule ^foo/$ ^/index.php [L] 

<Location /foo/> 
    php_value ... 
</Location> 

을 그런 경우가 아니라면, 당신은 우리에게 당신의 응용 프로그램에 대한 자세한 내용을 알려해야합니다 구조.

+0

예상하지 못했지만 Location 태그가 작동합니다. :) 감사합니다! – haltabush

+1

php_value를'Location' 또는'LocationMatch' 지시자 안에 넣었습니까? 나는 아파치 2.4를 사용하고 있으며, 그렇게하지 않을 것이다. 아무것도하지 않습니다. 고맙습니다 – mentinet

1

가능한 해결 방법은 액션을 구현하는 하나의 PHP 파일로 디렉토리를 만들고 "대상"URL을 사용하여 POST 대상을 제출하는 스크립트를 작성하는 것입니다. 입력을 처리 한 후 index.php을 통해 일반 페이지로 다시 리디렉션합니다. 깨끗하지는 않지만 작동해야합니다.

정확하게 당신이 이것을 얻기 위해서는 것도 고려해 볼 가치가 있습니다.

는 어떤 의미가 단지 행동에 session.gc_maxlifetime을 설정하지 않습니다
    • max_execution_time도 한 시간 경우도 이해가되지 않습니다 max_input_time 시간 하나에 제한
    • (당신은 그것을 증가하고 특히)
    • max_execution_time은 런타임에 설정할 수 있습니다.
    • 런타임에 다른 두 가지 지시문을 설정할 수 없지만 POST 크기는 중요하지 않으며 업로드 된 파일 크기는 일 수 있습니다. 런타임에을 확인할 수 있으며, 그에 따라 달라지기

    그래서 여기에 목표가 무엇입니까?

  • +0

    쓸모없는 값을 지적 해 주셔서 감사합니다. – haltabush

    관련 문제