我有一些域,我复制索引和.htaccess文件,结构是:
/home/user1/public_html
.htaccess
index.php
/home/user2/public_html
.htaccess
index.php
.
.
.
/home/userN/public_html
.htaccess
index.php
当我必须更新这些文件时,这是一个非常令人头疼的问题,我需要逐一进行。我试图创建软符号链接,但我得到了500内部错误。
有没有办法使用某些Apache或Linux功能统一这些文件?我正在使用CentOS,Apache和WHM / cPanel。
编辑1
恢复每个文件的内容
的index.php
<?php
$ini = parse_ini_file('../system/ini/app.ini');
require_once($ini['env_path'] . '/' . $ini['env_name'] . '/IniHandler.php');
$IniHandler = new IniHandler();
require_once($IniHandler->getFullEnvPath() . '/frontcontroller-site.php');
的.htaccess
Options -Indexes
ErrorDocument 404 /errormessages/404.php
DirectoryIndex index.php?module=site&controller=Main&action=index
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)/([A-Z]{1}[a-zA-Z]+)/([a-zA-Z]+)/?(.+)*$ /index.php?module=$1&controller=$2&action=$3&aux_get_vars=$4 [QSA,L]
</IfModule>
答案 0 :(得分:1)
考虑到您只需要更新特定帐户,我认为您已经知道哪些帐户是那些帐户,那么您可以使用简单的bash脚本来完成。您必须首先创建一个数组,该数组包含应该修改的文件。
Bash脚本示例:
#!/bin/bash
declare -a files=('/home/cpaneluser/public_html/.htaccess' '/home/cpaneluser1/public_html/.htaccess' '/home/cpaneluser2/public_html/.htaccess' '..' '..');
for i in "${files[@]}"
do
echo "abc" >> $i # add abc text at the end of the file
sed -i '9i9 This is Line 9' $i # add This is Line 9 on line 9 in the text file
done
上面的脚本会将文字 abc 添加到以下文件中:
- /home/cpaneluser/public_html/.htaccess
- /home/cpaneluser1/public_html/.htaccess
- /home/cpaneluser2/public_html/.htaccess
当然这只是一个通用的例子,但我相信这是一个很好的起点。可能需要一点时间来构建初始文件列表,但无论如何你必须定义这些文件。然后,您可以根据需要修改/调整此脚本。
希望它有所帮助!