2

このコード行を使用して、特定の URL を ssl バージョンにリダイレクトし、同時に短い SEO フレンドリ名を表示しています。

RewriteRule ^signin$ https://server.com/login.php [L]

これは https がオンの場合に機能しますが、ユーザーが http を使用している場合、書き換えなしでリダイレクトが発生し、アドレス バーにフル パスが表示されます。

https://.../login.php

それ以外の

https://.../signin

SEO名を機能させる方法はありますか?

4

1 に答える 1

4

HTTPS を使用していない場合、プロトコルが一致しないため、外部リダイレクトが発生します。ブラウザは、サーバーから に対して新しいリクエストを行うように明示的に指示されているためhttps://server.com/login.php、アドレス バーに表示されます。

これは 2 つの手順で行う必要が/signinあります。 が要求され、HTTPS を使用していない場合は、同じパスの HTTPS バージョンにリダイレクトします。そして、/signin 内部的に (プロトコルとホスト名を指定せずに) に書き換えますlogin.php

RewriteCond %{HTTPS} ^off$
RewriteRule ^signin$ https://server.com/signin [L]

RewriteRule ^signin$ /login.php
于 2013-09-09T12:33:47.487 に答える