「永続的なリダイレクト」とmod_rewrite RewriteRuleの違い


9

これはApache httpd 2.2サーバーです。

このウェブサーバーへのアクセスはHTTPSで暗号化する必要があります。

Webクライアントがhttp://www.example.org/ $ foo(ポート80)で自分のサイトにアクセスしたときにhttps ://www.example.org/ $ fooでHTTPS暗号化されたWebサイトにリクエストをリダイレクトします。

これを行う一般的な方法は2つあるようです。

最初のメソッドはmod_aliasからの' Redirect 'ディレクティブを使用します

<VirtualHost *:80>
    Redirect permanent / https://www.example.org/
</VirtualHost>

2番目の方法はmod_rewriteを使用します。

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

「リダイレクト永続」とmod_rewriteスタンザの違いは何ですか。一方が他方より優れていますか?

回答:


8

デフォルトでは、mod_rewriteは一時的な "302 Found"リダイレクトを実行します。他のすべてが等しいと仮定すると、Redirect permanentと同等RewriteRule <blah> [R=permanent]です。


実際には、Redirectディレクティブはhttpからhttpsへのリダイレクトをより適切に処理します。以下のStefanのコメントを参照し、Apacheドキュメントのこのセクションを確認してください:httpd.apache.org/docs/current/rewrite/avoid.html#redirect
Gondy

7

一方が他方より優れていますか?

Apacheは、Redirectfrom mod_aliasを使用RewriteRuleする代わりに、from の使用を推奨していますmod_rewritehttps://httpd.apache.org/docs/current/rewrite/avoid.html#redirectを参照してください

mod_rewriteは、他の代替手段が必要であることが判明した場合、最後の手段と見なす必要があります。より簡単な代替手段があるときにそれを使用すると、構成が混乱しやすく、壊れやすく、保守が困難になります。


5

検索エンジンは永続的なリダイレクトを確認し、それに応じてインデックスを更新します。


>一方が他方より優れていますか?
Stefan Lasiewski、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.