2012-01-27 8 views
0

301が既存のRewriteruleをリダイレクトできるかどうか疑問に思っていますか?例えばhtaccess ReWriteRuleを書き換えることができますか?

私は私の.htaccessファイルに次の行がある場合:

のRewriteRule ^青のウィジェット/ bluewidgets.php

、その後、私は私のURL構造が、URLを変更する必要がある「青をウィジェットは/ "検索エンジンで良いランキングを失うことはありませんが、それは可能なURLをリダイレクトする別の書き換えルール(301)を追加することも可能です" newdirectory/blue-widgets/"?もしそうなら、これはどのように行われますか?新しいリライトルールを既存のリライトルールの下に追加する単純なケースですか?

2回の書き換えがあり、ページが遅くなるなどの問題がありますか?

答えて

0

であることをあなたのサイトにこのリンクを変更する必要があります。

301と302は外部からの書き換えであり、実際にはリダイレクト命令をユーザーのブラウザに戻して実行します。 301は、アドレス変更が永続的であることをブラウザ(および検索エンジン)に伝えます。

[R]フラグのない書き換えルールは内部リダイレクトを行います。これはApache/IISサブシステム内での再マッピングであり、外部に公開されていません。

はい、同じターゲットに内部的にリダイレクトされる複数のURIを持つことはできますが、記述したように、外部ではなく301になります。

0

RewriteRule ^blue-widgets/$ /new-directory/blue-widgets/ [L,NC,R=301] 
RewriteRule ^new-directory/blue-widgets/$ bluewidgets.php [L,NC] 

を試してみて、あなたが2回の書き換えを持っているという事実は、ページを遅くしたり、他の問題を持っていますか?

new-directory/blue-widgetsblue-widgetsを送信するために301がキャッシュされ、唯一のクライアントごとに一度発生しますので、パフォーマンスは最小限に影響を与えるべきです。内部と外部の書き換え:あなたができる場合

しかし、あなたはまた、次の2つの全く異なる側面を混乱さnew-directory/blue-widgets

+0

2行目は正しいですか?それは "新しいディレクトリ/"の部分を持っている必要がありますか? – user1052096

+0

@ user1052096最初の行は新しいURLにリダイレクトされます。 2行目は新しいURLを取得し、アプリケーションに書き換えます。両方とも必要で、オリジナルの1行を置き換えます。 –