0

長いタイトルでごめんなさい。私は現在、いくつかの 301 リダイレクトを作成しており、それらを処理するために mod rewrite (Apache) を使用しています。現在、私が試した 2 つの 301 のうち 1 つだけが機能しています。コードは次のとおりです。

#301 REDIRECTS
RewriteEngine On
RewriteRule ^Fox-and-Frank-home\.html$ http://www.mydomain.co.uk/contact_us.php [R=301]
RewriteRule ^about\.html$ http://www.domain.com/about/ [R=301,L]

about.html は適切にリダイレクトしますが、Fox-and-Frank-home.html はリダイレクトしません。他の名前、他の URL でこれを試しましたが、うまくいきません。どんな助けでも大歓迎です。

編集

これを完全に裸の .htaccess ファイルで動作させることができました。301 リダイレクトは他の何よりも一番上にある必要がありますか?

4

1 に答える 1

1

Fox-and-Frank の書き換えには L (最後) フラグがないため、他のルールが処理される可能性があり、間違いなく(フラグ.htaccessを使用する必要がある場所) になります。END

次のように変更してみてください。

RewriteRule ^Fox-and-Frank-home\.html$ http://www.mydomain.co.uk/contact-us.php [NC,R=301,L]

どこ:

  • NC は、大文字と小文字を区別しないチェックにします (したがって、fox-and-frank-home はにリダイレクトします)。
  • R=301 は 301 リダイレクトです (ただし、R を入れるだけで 301 と見なされますが、私は常に個人的に指定します)
  • L は mod_rewrite にそれ以降のルールの処理を停止するように指示します (ただし、 a では代わり.htaccess.に使用する必要がある場合があります- http://httpd.apache.org/docs/current/rewrite/flags.html#flag_lを参照してください)。END

よろしく。

于 2012-04-21T13:57:18.757 に答える