0

リクエストに foo/foofile.txt がある場合に、URL をhttp://subdomain.example.com/foo/foofile.txtからhttp://example.com/foo/foofile.txtに書き換える条件を作成しようとしています 。初期化。誰かが私を正しい方向に向けることができれば、あらゆる助けをいただければ幸いです...

よろしくお願いします、B

4

1 に答える 1

2

これは、特定のファイルについて、特定のサブドメインをメイン ドメインにリダイレクトしています。

v2 と v3 のどちらのバージョンの isapi_rewrite を使用していますか?

これは v3 を想定しています:

RewriteCond %{HTTP:Host} ^subdomain\.(.*)$
RewriteRule ^(/foo/foofile3\.txt)$ http://%1$1 [NC,R=301]

RewriteCond は、サブドメイン (およびドット) で始まるホストをテストし、書き換えルールの便宜上、残り (example.com) をキャプチャします。そこに特定の example.com を配置することもできますが、これにより、より一般的なものになります。

次に、RewriteRule は特定の /foo/foofile3.txt を探し、それをキャプチャします (これもルールで繰り返さないための便宜のためです)。結果には、条件 (example.com) でのキャプチャの %1 と、ルール (/foo/foofile3.txt) でのキャプチャの $1 があります。

NC は大文字と小文字を区別しません。R=301 は永続的なリダイレクトです。

v3 では、クエリ文字列パラメーターが自動的に処理されるため、ファイルの後にあるものはすべて保持されます。

もう少し複雑にする他の可能性は、サブドメイン、または 1 つの特定のファイルではなくファイル名のパターンです。

ルールを正しく取得している間、ブラウザが試行をキャッシュすることに問題がありました。そのため、ルールを変更しても、ブラウザーは以前のリダイレクトをキャッシュしていました。私の簡単な修正は、新しい URL のファイル名を数えることでした: foofile2、foofile3 (3 回目の試行で取得したと思います...)。毎回ブラウザのキャッシュをクリアすることもできました。これはより迅速でした。

于 2011-07-24T01:22:35.960 に答える