То, что я пытаюсь сделать, – автоматизировать процесс перехода с веб-сайтов. Эти веб-сайты динамически создаются с использованием htaccess, поэтому вот пример:
RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] RewriteRule ^(.*)$ /folder%{REQUEST_URI}?%{QUERY_STRING} [QSA,L]
То, что я делаю, это добавить псевдоним домена для домена.com , а затем указать его на мой IP-адрес сервера, а файл htaccess позволяет просмотреть, что находится в папке /.
Он отлично работает, но мы планируем иметь сотни веб-сайтов и добавление этого фрагмента кода в htaccess вручную может стать довольно раздражающим. Поскольку все, что я изменяю, это domain.com и / folder , есть способ использовать PHP для динамического добавления в нижней части файла .htaccess, если я создам форму и скажу ей домен и папку, он добавит его в нижней части файла htaccess?
Это спасло бы столько времени.
Спасибо.
Я действительно не рекомендую разрешать php добавлять ANYTHING в .htaccess, это большой риск для безопасности.
//but here is your code $f = fopen(".htaccess", "a+"); fwrite($f, "your content"); fclose($f);
Ну вот:
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
(поскольку php работает под тем же именем, что и владелец файла)
Конечно. Его просто еще один файл, если у процесса есть разрешение на запись в файл.
Довольно удобный способ – использовать класс PEAR File_HtAccess . Но, как сказано ранее, вы не должны писать файл из PHP-скрипта, доступного через Интернет.