我要做的是自动化网站上线过程。这些网站都是使用htaccess动态创建的,所以这里有一个例子:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*)$ /folder%{REQUEST_URI}?%{QUERY_STRING} [QSA,L]
我所做的是为 domain.com 添加域别名,然后将其指向我的服务器IP,htaccess文件使其查看/文件夹中的内容。
它运行正常,但我们计划拥有数百个网站,并且手动将这些代码片段添加到htaccess会非常烦人。由于我要更改的是 domain.com 和 / folder ,有没有办法使用PHP动态添加到.htaccess文件的底部如果我创建了一个表单并告诉它域和文件夹,它会将它添加到htaccess文件的底部吗?
这会节省很多时间。
非常感谢。
答案 0 :(得分:27)
我真的不建议允许php将 ANYTHING 添加到.htaccess中,这是一个很大的安全风险。
//but here is your code
$f = fopen(".htaccess", "a+");
fwrite($f, "your content");
fclose($f);
答案 1 :(得分:6)
你走了:
function writeht($domain, $folder)
{
$fp = fopen('.htaccess','a+');
if($fp)
{
fwrite($fp,'
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} ^(www\.)?'.str_replace('.','\.',$domain).'$ [NC]
RewriteRule ^(.*)$ /'.$folder.'%{REQUEST_URI}?%{QUERY_STRING} [QSA,L]');
fclose($fp);
}
}
//usage: writeht("domain.biz","yourfolder");
0644
.htaccess
{{1}}权限适用于我(因为php在与文件所有者相同的用户下运行)
答案 2 :(得分:3)
不确定。它只是另一个文件,只要进程有权写入文件。
答案 3 :(得分:2)
使用PEAR类File_HtAccess非常舒服。但如前所述,您不应该从可通过Web访问的PHP脚本中编写该文件。