有没有什么办法可以用php代码修改.htaccess
?通过php代码修改.htaccess
我只是试图
$handle=fopen("./dir/.htaccess",w);
fwrite($handle, "order deny,allow\ndeny from all");
fclose($handle);
,这似乎并不工作。
P.S.我无法使用中的httpd.conf
,因为我没有root权限。
有没有什么办法可以用php代码修改.htaccess
?通过php代码修改.htaccess
我只是试图
$handle=fopen("./dir/.htaccess",w);
fwrite($handle, "order deny,allow\ndeny from all");
fclose($handle);
,这似乎并不工作。
P.S.我无法使用中的httpd.conf
,因为我没有root权限。
代码是正确的。唯一的问题是运行php的用户是apache
。我使用whoami
命令检查了这一点。因此文件权限需要相应地改变。
将文件权限更改为777完美。
感谢Mike
777权限就像是让你的前门解锁。请注意,共享您的服务器的任何其他用户现在可以覆盖您的.htaccess文件。将其重新更改为644或444,直到需要再次更改为止。考虑将代码放入.htaccess本身,以限制网络访问者访问它(虽然这不会阻止它对付系统上的其他人)。 –
@PhilPerry我明白风险。由于我需要修改的.htaccess是叶级别.htaccess。所以它不会影响我的整个网站,但只是一个目录。我在使用之前计算了风险。 – Dheerendra
好的,只要您了解将文件或目录打开以供任何人写入的潜在后果。我提出了建议,因为我经常看到有人试图对新手有所帮助,他们首先以“首先将所有内容修改为777”开始他们的指示。这在40年前可能还行,但任何电脑上的黄金法则都是“不要相信任何其他人”。 –
是的,您可以使用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);
尝试从非常同一位置的.htaccess
这段代码运行。
什么是文件权限? PHP运行的用户是什么?你收到什么错误信息?尝试把'error_reporting(-1); ini_set('display_errors',1);'在代码的顶部。 – Mike
php作为'apache'运行;并且文件权限是755 – Dheerendra
如果权限是755,除非它属于'apache',否则您将无法写入它。 – Mike