【问题标题】:Possible to modify htaccess file with PHP?可以用 PHP 修改 htaccess 文件吗?
【发布时间】:2014-10-15 01:20:39
【问题描述】:

我正在为 SUgarCRM 构建一个 PHP 模块。

当用户安装模块时,我可以访问可以作为安装过程的一部分运行的脚本...

我基本上需要修改.htaccess文件,增加max_input_varsINI设置。

所以我需要有这样的代码:

  1. 读取max_input_vars的PHP INI设置这部分很容易。如果它低于 3000,我需要在 .htaccess 文件中增加它
  2. 读入 .htaccess 文件的内容
  3. 将此值添加到 htacess php_value max_input_vars 3000
  4. 保存包含所有旧内容和新设置的 .htaccess 文件

这还实用吗?我想我以前见过 WordPress 做过这样的操作,我也会在那里寻求帮助/想法,但我可以在这方面使用任何帮助吗?

【问题讨论】:

  • 这是否可能取决于系统管理员如何设置您正在运行的服务器。有时它会起作用,有时它不会。同样在某些服务器上,您不能从 htaccess 文件中设置 php_value — 将该行代码放在 htaccess 中有时会使整个服务器脱机,直到有人编辑 htaccess 文件以将其删除。

标签: php .htaccess


【解决方案1】:

只要文件对运行脚本的用户具有可写权限,那么您应该可以使用:

file_put_contents('path/to/.htaccess', "\nphp_value max_input_vars 3000", FILE_APPEND);

如果权限是一个问题,并且您不想让运行脚本的任何用户都可以写入 .htaccess 文件,那么我知道有一些方法可以升级您当前的权限(通过更改当前用户),使用类似于 C++ 可执行文件的东西,但我不知道细节(我已经看到与我一起工作的人完成了它)。抱歉,如果这没有帮助。 :-\

【讨论】:

  • 我见过有人获取当前 htaccess 文件的内容,存储为字符串,删除 .htaccess 文件,然后使用以前的数据 + 他们想要附加的新数据创建另一个文件. (最后的手段,但可能会解决问题
  • @Darren:删除文件需要对包含该文件的目录的写访问权限,这并不会更好。
  • 正是我说的原因 Last resort though, could be issue-filled :)
  • 感谢代码示例。我真的希望权限允许它,最糟糕的是它会安装到许多不同的人的服务器上,所以我肯定会遇到问题!
  • 我的模块有一个 PHP 文件/脚本,它在安装模块时运行,在安装后直接运行,我可以在其中放置这样的代码。 IT 通常用于创建自定义数据库表和类似的东西,所以我也会尝试在那里使用此代码。我想我需要在运行它之前以某种方式检查文件是否可写,你知道我可以先用什么来检查文件是否可编辑吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多