使用PHP动态添加到.htaccess文件?

Dre*_*rew 5 php dns .htaccess mod-rewrite dynamic

我想要做的是自动化网站上线的过程.这些网站都是使用htaccess动态创建的,所以这里有一个例子:

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*)$ /folder%{REQUEST_URI}?%{QUERY_STRING} [QSA,L]
Run Code Online (Sandbox Code Playgroud)

我所做的是为domain.com添加域别名,然后将其指向我的服务器IP,htaccess文件使其查看/文件夹中的内容.

它工作正常,但我们计划有数百个网站,并手动将这些代码片段添加到htaccess可能会非常烦人.因为我要更改的是domain.com/文件夹,有没有办法使用PHP动态添加到.htaccess文件的底部如果我创建一个表单并告诉它域和文件夹,它会添加它到htaccess文件的底部?

这样可以节省很多时间.

非常感谢.

gen*_*sis 27

我真的不建议允许php将任何内容添加到.htaccess中,这是一个很大的安全风险.

//but here is your code
$f = fopen(".htaccess", "a+");
fwrite($f, "your content");
fclose($f);
Run Code Online (Sandbox Code Playgroud)

  • -1表示完全未经证实的安全声明. (12认同)

Dev*_*oot 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");
Run Code Online (Sandbox Code Playgroud)

对我0644有好处的权限.htaccess(因为php在与文件所有者相同的用户下运行)