1

問題1

それは少し難しいですが、私は3つ以上のアドオンドメインを持っていて、それらのフォルダはルートにあります。

www/index.php   ROOTSITE.COM
www/example.com/index.php example.COM
www/example2.com/index.php example2.COM

上記のexample.comとexample2.comはメイン内のフォルダであることを忘れないでください

だから私がROOTSITE.COMをメンテナンスモードにしたとき..を使用して

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://rootsite.com/maintenance.html [R=307,L]

example.comexample1.comをroot.com/maintanance.htmlに転送します。サンプルサイトを非メンテナンスモードにしないようにする方法を教えてください。そのように、ルート上の.htaccessルールがアドオンドメインに影響を与えないようにします。 (フォルダ内)

問題2

また、サイトがメンテナンスモードになるときに、事前に作成されたカウントダウンタイマー(時間:分:秒)が必要です...カウントダウンが終了した後、rootsite.comに転送する必要があります.... .htaccessを変更することもできますか?つまり、カウントダウンが終了すると、.htaccessのルールを変更して、メンテナンスモードのルールを削除する必要があります。

4

1 に答える 1

1

問題1

.htaccess仮想ホストに関係なく、すべての物理サブディレクトリに適用されます。

解決策1

含む作成www/example.com/.htaccess

RewriteEngine On

これにより、上位レベルのディレクトリの書き換えルールが上書きされます。

解決策2

にメンテナンス書き換えルールを入れないでください.htaccess<VirtualHost>代わりに、ルートサイトの構成ファイルのセクションに直接配置してください。


問題2

日付変数を使用して、現在の日付に基づいてルールに条件を設定します。例えば

RewriteCond %{TIME_YEAR}-%{TIME_MON}-%{TIME_DAY}T%{TIME_HOUR} \
            2011-02-18T(09|1.|20)   # 9 am to 9 pm today

TIME_*これは、変数から現在の日付と時間の文字列を作成します。たとえば2011-02-18T15、これはISO形式の日付のプレフィックスです)。粒度が必要な場合は、分と秒を含むより長い文字列を作成できます。

正規表現は9から20までの番号範囲に一致するため、09:00:00から20:59:59までの時間、つまり午前9時から午後9時まで一致します。

この条件を他の2つのディレクティブの横に追加するRewriteCondと、ルールは特定の時間範囲でのみアクティブになります。

于 2011-02-18T18:53:19.153 に答える