【问题标题】:Set php_value for custom URL with .htaccess file使用 .htaccess 文件为自定义 URL 设置 php_value
【发布时间】:2019-04-10 09:30:50
【问题描述】:

我想为某个 URL 设置一个 PHP 值。例如,我有很多 URL,其中一个是 http://example.com/admin。我只想为这个 URL 添加post_max_size php_value

【问题讨论】:

  • /admin 是物理目录吗?
  • @MrWhite 不,不是

标签: php apache .htaccess url


【解决方案1】:

不幸的是构造

<If "%{REQUEST_URI} == '/admin'">
    php_value post_max_size 64M
</If>

不起作用,因为在“php_value”参数解析中,REQUEST_URI 变量似乎没有被初始化。我设法通过比较 THE_REQUEST 变量和 preg 匹配来让它工作:

<If "'%{THE_REQUEST}' =~ m#uploadPublic.php#">
    php_value upload_max_filesize 100M
    php_value post_max_size 100M
</If>

【讨论】:

    【解决方案2】:

    您可以在.htaccess 中使用 Apache 表达式 (Apache 2.4) 来隔离该 URL,否则该指令自然会应用于此目录树。

    类似:

    <If "%{REQUEST_URI} == '/admin'">
        php_value post_max_size 64M
    </If>
    

    是否可以在.htaccess 中设置php_value 取决于 PHP 是否作为 Apache 模块安装。

    【讨论】:

    • 以这种方式使用 Apache 表达式只是一个理论,我自己无法测试。大概你没有收到错误?如果您只是单独拥有 php_value 指令,它是否“有效”(因为正确设置了 post_max_size 值)?大概你实际上是在向这个 URL 发送 POST 请求?
    • 您的方法没有错误。我使用echoini_get 的值,它是php.ini 的值并且没有改变。不,我已经用GET 方法对其进行了测试,但根本不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2014-12-29
    • 2022-01-26
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多