web-dev-qa-db-ja.com

「リダイレクトパーマネント」とmod_rewrite RewriteRuleの違い

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

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

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

これを行うには、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スタンザの違いは何ですか。一方が他方より優れていますか?

9

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

8
Mark Wagner

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

Apacheは、mod_aliasRedirectを使用する代わりに、mod_rewriteRewriteRuleの使用を推奨しています。 https://httpd.Apache.org/docs/current/rewrite/avoid.html#redirect を参照してください:

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

7

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

5
MDMarra