【问题标题】:Why isn't .htaccess file being edited?为什么不编辑 .htaccess 文件?
【发布时间】:2021-05-11 18:07:21
【问题描述】:

在我的网站上,我在其中一个表单中有图像上传输入字段,通常当我尝试上传图像时,一切正常,但在某些情况下,处理表单输入的文件会出错。当我 var_dump $_FILES 数组时,我可以观察到数组中除 name 之外的所有元素都是空的。

我注意到这取决于上传的文件大小。所以我决定编辑 .htaccess 文件以增加上传图像的最大可能值。 .htaccess文件放在我项目的根目录,我用的是XAMPP。

我在 .htaccess 中写了这些行:

php_value file_uploads = On
php_value post_max_size = 100000M
php_value upload_max_filesize = 100000M
<Directory />
    AllowOverride All
</Directory>

但它似乎不起作用。当我上传更大的图像时,问题仍然存在。

我做错了什么?如何使 .htaccess 正常工作?

UPD 0:我对帖子进行了一些更改

【问题讨论】:

  • "我在 .htaccess 中编写了这些行:" - 如果您在 .htaccess 中编写了这些行,那么似乎 .htaccess 覆盖未启用,因为此处不允许使用 &lt;Directory&gt; 指令,并且将“破坏”您的服务器(500 错误)。
  • @MrWhite 我没有收到 500 错误。我确实在 .htaccess 中写了这些行。
  • @MrWhite 但是在 VS 代码中,.htaccess 被保存为名称 .htaccess.bat。它不应该有 .bat 扩展名,对吧?
  • 我删除了 .bat,现在服务器产生 500 错误
  • &lt;Directory&gt;.htaccess从未被允许 - 这在这里没有任何意义。它是一个仅限服务器的指令。 .htaccess 文件本身相当于 &lt;Directory&gt; 容器。

标签: php .htaccess xampp wamp


【解决方案1】:
php_value file_uploads = On
php_value post_max_size = 100000M
php_value upload_max_filesize = 100000M
<Directory />
    AllowOverride All
</Directory>

&lt;Directory&gt; 容器在 .htaccess 文件中无效,此处也不需要它。 .htaccess 文件本身实际上就是 &lt;Directory&gt; 容器。

另外,设置 PHP config vars 的语法不正确,这里应该没有=。例如:

php_flag file_uploads On
php_value post_max_size 100000M
php_value upload_max_filesize 100000M

因为file_uploads 是一个布尔值,所以你真的应该使用php_flag,而不是php_value 来设置它。

此外,这是否有效取决于 PHP 的安装方式。仅当 PHP 作为 Apache 模块(即 mod_php)安装时才有效。

【讨论】:

  • 不客气。实际上,由于file_uploads 是一个boolean,你应该真的使用php_flag 来设置它。我已经更新了我的答案。
猜你喜欢
  • 2010-10-09
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-24
  • 1970-01-01
  • 2019-11-28
相关资源
最近更新 更多