0

問題を文章で説明する方法がよくわからないので、代わりに例を挙げて説明します。

次のようなフォルダー構造があるとします。

/根

/root/clientfolder1/testfile.php

/root/clientfolder2/testfile.php

等...

また、testfile.php はすべてのサブフォルダーで同じです。

ここで、testfile2.php という名前の新しいファイルをすべてのサブフォルダーにプッシュしたので、すべてのサブフォルダー内に testfile2.php が存在するとします。

古い testfile.php が新しい testfile2.php を指すようにリダイレクトを追加します。

したがって、私の .htaccess に以下を追加します (はい、「RewriteEngine On」は .htaccess ファイルで既に設定されています)。

RewriteRule (.*)/testfile\.php /$1/testfile2.php [R=301,L]

さて、この時点ではすべてが正常に機能しているように見えますが(ここが難しいところです)、私のhtaccessファイルには、次のような特定のフォルダーを指すように複数のドメイン用のルールも設定されています。

RewriteCond %{HTTP_HOST} domain-one.com
RewriteCond %{REQUEST_URI} !^/clientfolder1
RewriteRule ^(.*)$ clientfolder1/$1 [L]

RewriteCond %{HTTP_HOST} domain-two.com
RewriteCond %{REQUEST_URI} !^clientfolder2
RewriteRule ^(.*)$ clientfolder2/$1 [L]

等...

また、メイン サイト (ルートにあるファイル) に使用されるメイン (デフォルト ドメイン名) を持っています。それを main-domain.com と呼びましょう。

したがって、次のように動作します。

domain-one.com/testfile.php
domain-one.com/testfile2.php
domain-two.com/testfile.php
domain-two.com/testfile2.php
main-domain.com/clientfolder1/testfile.php
main-domain.com/clientfolder2/testfile.php

ここに私の質問/問題があります:

testfile.php を testfile2.php に置き換えるために上で追加した新しいリダイレクトにより、次のことが起こります。

domain-one.com/testfile.phpは、main-domain.com/ clientfolder1 /testfile2.phpにリダイレクトします 。

しかし、 domain-one.com/testfile2.phpにリダイレクトする必要があります

これを機能させることができません...そして、これには簡単な解決策があると確信しており、明らかな何かが欠けているだけなので、イライラしています。これはどのように行うことができますか?

よろしくお願いします。

4

1 に答える 1

1

Apache は、ルールで指示されたとおりに実行します。

RewriteCond %{HTTP_HOST} domain-one.com

ドメインが「domain-one.com」の場合は……

RewriteCond %{REQUEST_URI} !^/clientfolder1

...そしてURIが「/clientfolder1」で始まっていません...

RewriteRule ^(.*)$ clientfolder1/$1 [L]

...次に、URI の先頭に「clientfolder1/」を追加します。

于 2012-08-31T21:00:37.340 に答える