用php代码修改.htaccess

用php代码修改.htaccess,php,.htaccess,Php,.htaccess,是否有任何方法可以使用php代码修改.htaccess 我只是试了一下 $handle=fopen("./dir/.htaccess",w); fwrite($handle, "order deny,allow\ndeny from all"); fclose($handle); 这似乎不起作用 另外,我不能在httpd.conf中使用RewriteMap,因为我没有根权限。是的,您可以使用PHP代码修改.htaccess 你可以这样做 $handle=fopen(".htaccess",'a

是否有任何方法可以使用php代码修改
.htaccess

我只是试了一下

$handle=fopen("./dir/.htaccess",w);
fwrite($handle, "order deny,allow\ndeny from all");
fclose($handle);
这似乎不起作用


另外,我不能在
httpd.conf
中使用
RewriteMap
,因为我没有根权限。

是的,您可以使用PHP代码修改
.htaccess

你可以这样做

$handle=fopen(".htaccess",'a'); //<--- Surround the 'a' with quotes. You didn't do that btw
fwrite($handle, "order deny,allow\ndeny from all");
fclose($handle);

$handle=fopen(.htaccess,'a')// 代码是正确的。唯一的问题是运行php的用户是
apache
。我使用
whoami
命令检查了它。因此,需要相应地更改文件权限

将文件权限更改为777非常有效。

感谢Mike

什么是文件权限?PHP是作为什么用户运行的?您收到了什么错误消息?尝试放置
错误报告(-1);ini设置(“显示错误”,1)
位于code.php的顶部,作为“apache”运行;如果权限为755,则文件权限为755,除非它归“apache”所有,否则您将无法对其进行写入。@迈克,谢谢,我将权限更改为777,它就工作了。如果它不与“w”一起工作,它可能也不会与“a”一起工作,因为唯一更改的是文件指针位置。此外,如果您使用非引号字符串,它仍将按预期工作,但如果启用了错误报告,则会产生警告。如果您密切注意到我的代码,我已更改了
.htaccess
的位置,我认为OP指的是一个不存在的
.htaccess
文件。啊,我没有注意到这一点。你很有可能是对的。777权限就像不锁前门一样。请注意,共享服务器的任何其他用户现在都可以覆盖.htaccess文件。将其更改回644或444,直到需要再次更改为止。考虑将代码放在.HTAccess本身中,以限制Web访问者对它的访问(虽然不能保证它对系统上的其他人的访问)。因为我需要修改的.htaccess是叶级别的.htaccess。所以它不会影响我的整个网站,只是一个目录。在使用这个之前,我计算了风险。好的,只要您了解让任何人都可以写入文件或目录的潜在后果。我之所以给出这个建议,是因为我经常看到人们试图帮助新手,从“第一个chmod一切到777”开始他们的指导。这在40年前或许还可以,但任何电脑的黄金法则都是“不要过于相信别人”。