0

RedirectMatch ディレクティブの形式で mod_rewrite ルールを再作成したいと考えています。

まず、この mod_rewrite ルールを見てください。

RewriteEngine On
RewriteCond %{HTTP_HOST} (www.)?africananimals.com
RewriteCond %{REQUEST_URI} zebras
RewriteRule ^(stripes|hooves)/zebras/?$ zebras/$1 [R,L]

ルール (非常に有益で知識豊富な StackOverflow の寄稿者によって作成された) は、サーバーに次の 4 つの URL を変換するように指示します。

http://africananimals.com/stripes/zebras

http://africananimals.com/hooves/zebras

http://www.africananimals.com/stripes/zebras

http://www.africananimals.com/hooves/zebras

-- これらのより適切で論理的に構造化されたものに:

http://africananimals.com/zebras/stripes

http://africananimals.com/zebras/hooves

http://www.africananimals.com/zebras/stripes

http://www.africananimals.com/zebras/hooves

(これらは実際の URL ではなく、単なる例です。)

そのホスティング サーバーには他の Web サイトがあり、それらのディレクトリ構造はたまたま同じである可能性があります。そのため、最初の条件は、ルールが africananimals.com ドメインにのみ適用されることを保証します。

2 番目の条件は、URL に「zebras」という単語が含まれている場合にのみルールが適用されるようにします。

ルール自体は、「stripes」または「hooves」のいずれかの後に「/zebras」または「/zebras/」を選択し、URL を書き換えて、以前に選択した項目 (「stripes」または「hooves」のいずれか) を「zebras/」の後に配置します。まさにそれが行われるべきです。

質問: RedirectMatch ディレクティブを使用して同じタスクを達成するにはどうすればよいですか?

Apache のアマチュアとして、専門家からの洞察を大いに歓迎します。

4

1 に答える 1

1

私はこのような何かがそれを行うと思います:

RedirectMatch 301 ^/(stripes|hooves)/zebras/?$ http://africananimals.com/zebras/$1
于 2013-02-11T03:16:30.220 に答える