在多个域之间共享索引和.htaccess文件

时间:2017-02-15 14:29:23

标签: apache .htaccess cpanel whm

我有一些域,我复制索引和.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>

1 个答案:

答案 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

当然这只是一个通用的例子,但我相信这是一个很好的起点。可能需要一点时间来构建初始文件列表,但无论如何你必须定义这些文件。然后,您可以根据需要修改/调整此脚本。

希望它有所帮助!