0

そのようなRewriteCondを達成しようとしていますが、正規表現に問題があります

現在のアドレスが domain2.tld/test/ の場合のみdomain1.tld にリダイレクトしますが、domain2.com/test/ _appz / の場合はリダイレクトしません

ドメインは無関係である可能性があります:

現在のアドレスがディレクトリ /test/ で構成されている場合のみ、domain1.tld にリダイレクトしますが / test/_appz/ 以下の場合ではありません

条件を達成したい:

domain2.tld/test/ >>> リダイレクト

domain2.tld/test/_appz/ >>> 滞在

otherdomain.tld >>> 滞在

編集:

私は非常に独自の目的で独自の CMS を作成しており、同じ public_html を指す 2 つのドメインを取得しています。

1 つは公式で、もう 1 つは CMS 経由でのアクセスにのみ使用されます。

cms.domain2.tld/test/ >>> redirect to domain1.com

cms.domain2.tld/test/_appz/ >>> no redirect

domain1.tld>>> no redirect (as it will be loop)

domain1.tldおよびcms.domain2.tldは、その .htaccessが存在する 同じディレクトリを指しています

4 事前に助けてくれてありがとう!

4

1 に答える 1

0

mod_alias または mod_rewrite を使用してリダイレクトを行うことができます。mod_aliasを使用する場合は、2 つのパス ノードを仮想的にリンクするディレクティブを使用したくないRedirectことに注意してください。これは望んでいるものではありません。

mod_alias

domain2.tldのドキュメント ルートにある htaccess ファイルに、次を追加します。

RedirectMatch ^/test/?$ http://domain1.tld/

永続的なリダイレクトが必要な場合:

RedirectMatch 301 ^/test/?$ http://domain1.tld/

mod_rewrite

mod_alias に干渉する可能性のある書き換えルールがある場合は、mod_rewrite だけに固執することをお勧めします。また、domain1.tlddomain2.tldの両方が同じドキュメント ルートを共有している場合、mod_alias を使用することはできません。次のようなものが必要です。

RewriteEngine On
RewriteCond %{HTTP_HOST} domain2.tld$ [NC]
RewriteRule ^/?test/?$ http://domain1.tld/ [L,R]

恒久的なリダイレクトが必要な場合は、フラグを に変更し[L,R=301]ます。

于 2013-01-16T23:11:59.640 に答える