58

サイトの再設計後、リダイレクトが必要なページがいくつかあります。すべてが同じドメインにとどまっています。いくつかのものが再編成および/または名前変更されているだけです。それらは次の形式です。

/contact.php

今でしょ:

/contact-us.php

.htaccess ファイルを使用して、次の行を追加しました。これは、最も推奨される行です。

RedirectMatch 301 /contact.php /contact-us.php

これはほとんど問題ありません-それは仕事をします-問題は、リダイレクトもすることです:

  • /team1/contact.php
  • /存在しないフォルダ/contact.php

ルートで contact.php のみをリダイレクトするように指定する方法はありますか?

4

6 に答える 6

88

RedirectMatchURL パスと照合される正規表現を使用します。また、正規表現は、 を含む URL パスを/contact.php意味しますが、正確に. そのため、文字列の開始と終了にアンカーを使用します (および:/contact.php/contact.php^$)

RedirectMatch 301 ^/contact\.php$ /contact-us.php
于 2009-09-14T11:54:18.403 に答える
22

これでできるはず

RedirectPermanent /contact.php /contact-us.php 
于 2009-09-14T11:51:14.590 に答える
9
redirect 301 /contact.php /contact-us.php

redirectmatch ルールを使用しても意味がなく、完全に一致するようにリンクを作成する必要があります。含めなくても、除外する必要はありません。一致せずにリダイレクトを使用してから、通常どおりリンクを使用してください

于 2013-06-19T15:48:20.640 に答える
0

ストアページを連絡先ページにリダイレクトします

    <IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteBase /
    Redirect 301 /storepage /contactpage
    </IfModule>
于 2016-09-29T00:50:37.873 に答える
0

一致をテンプレート化し、URL をリダイレクトする機能が必要な場合は、 RewriteRuleを使用することもできます。

于 2009-09-14T11:51:16.013 に答える
0

問題に対して可能な限り単純な解決策を使用したい場合は、 RedirectMatchの代わりに、より基本的なRedirectディレクティブを使用できます。

パターン マッチングを使用しないため、より明示的で、他のユーザーにとって理解しやすくなっています。

すなわち

<IfModule mod_alias.c>

#Repoint old contact page to new contact page:
Redirect 301 /contact.php http://example.com/contact-us.php

</IfModule>

ドキュメントに次のように記載されているため、クエリ文字列を引き継ぐ必要があります。

一致した URL パスを超える追加のパス情報がターゲット URL に追加されます。

于 2013-04-18T13:50:59.533 に答える