2

最近、ウェブサイトを本番環境に立ち上げました。

この Web サイト全体は、次のフォルダー構造になります: /root/v1/website.com/index.php

私が必要としているのは .htaccess に関するヘルプです。環境をアップグレードする場合、ダウンタイムは必要ありません。そのため、/root/v2/website.com/index.php という名前のフォルダーに Web サイトの次のバージョンを作成し、すぐに切り替えられるようにしたいと考えています。

基本的に、すべてのトラフィックを現在のバージョンの対応するフォルダーに送信することにより、「スイッチを切り替えます」。

たとえば、現在、http ://www.website.com/cookies/aregreat.php からのすべてのトラフィックを /root/v1/website.com/cookies/aregreat.php で開くようにしたいと考えています。

これは、画像、js、および css ファイルにも適用されます。

そして、明らかに.htaccess内からバージョンを変更でき、残りはうまくいきます。

私は RewriteRule に慣れておらず、正規表現にもあまり詳しくありません。問題を解決するのに最も近いのは次のとおりです。

RewriteEngine on
RewriteRule (.*) /../v1.0.0/$1

これはおそらく完全に間違っています。これは可能ですか?

すべてのヘルプは大歓迎です。

どうもありがとう、

ダン

4

4 に答える 4

0

.htaccess でこれを行う必要がある場合は、これを試してください。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domainname.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domainname.com$
RewriteCond %{REQUEST_URI} !folderV2/
RewriteRule (.*) /folderV2/$1 [L]

注: 私はこれをテストしていません。100% うまくいくとは確信していません。

于 2012-09-09T22:59:50.687 に答える
0

ドキュメントルートの htaccess ファイル ( n になります/root/.htaccess):

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/v[0-9.]+/website.com
RewriteRule ^(.*)$ /v1/website.com/$1 [L]

を任意のバージョンに変更しv1てファイルを保存するだけで、スイッチを切り替えることができます。


残念ながらこれは機能しませんが、これは私が望むタイプのソリューションです。サブドメインでも機能するようにこれを書き直すことは可能でしょうか?

ええ、シンボル%{HTTP_HOST}を使用して後方参照と照合できます。%

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^/v[0-9.]+/%2
RewriteRule ^(.*)$ /v1/%2/$1 [L]

ここで、%2は任意の の後に一致するものになりますwww.。したがって、URL が次の場合:

http://www.domain.com/cookies/aregreat.php

次に、に書き換える必要があり、次のよう/v1/domain.com/cookies/aregreat.phpになります。

http://cakes.domain.com/chocolate/cake.php

/v1/cakes.domain.com/chocolate/cake.phpなどに書き換える必要があります。

于 2012-09-09T23:00:06.543 に答える
0

「すべてのトラフィック」で新しいバージョンを本当に使用したい場合は、.htacess ファイルを使用せず、シンボリック リンクを使用します。ルートでは、v1 を指す「リリース済み」のリンクが 1 つあります。このように作成します

ln -s /root/v1 /root/released

vhost を release に向けます。切り替える場合は、1 行のコマンドを実行します。

rm -rf /root/released; ln -s /root/v2 root/released
于 2012-09-09T22:50:04.497 に答える
0

Apache 仮想ホスト構成 ( DocumentRoot ) で構成するのはどうですか?

于 2012-09-09T22:51:51.193 に答える