2011-01-26 10 views
0

URLのショートフォームを維持しながら、リダイレクト私は私の.htaccessに、この書き換えルールを持っている:.htaccessのHTTPS [OK]を

RewriteRule ^settings https://%{HTTP_HOST}/user_settings.php 

これは、「httpsに "http://domain.com/settingsを" リダイレクト://ドメイン.com/user_settings.php "

"http://domain.com/settings"から "https://domain.com/settings"にリダイレクトする方法を教えてください。つまり、.htcaccessのリダイレクトショートURLを保持したまま、HTTPからHTTPSへのURLのリダイレクトはどのようにできますか?

ありがとうございます!

答えて

1

EDIT:質問後の回答の更新が明確になりました。

あなたはこのような何かを行うことができます。HTTPSがオフになっているし、それがある場合は、次のRewriteRuleはのみ発生するかどう

RewriteCond %{HTTPS} !=on 
RewriteRule ^settings(/?)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,NC] 
RewriteCond %{HTTPS} =on 
RewriteRule ^settings(/?)$ /user_settings.php [L,NC] 

最初RewriteCondがチェックされます。

RewriteRule

最初は、次のいずれかと一致します:

  • http://domain.com/settings
  • http://domain.com/settings/

(/?)は任意であることがスラッシュ末尾ができます。 R[R,NC]は、これをリダイレクトに強制しました。NCは、大文字と小文字を区別しません。

もう一度RewriteCondがHTTPSをチェックしますが、今回はHTTPSがオンになっていることを確認します。

HTTPSがオンで、ディレクトリにいる(つまり、最初の書き換えに成功した)場合は、user_settings.phpに書き換えます。 L[L,NC]の場合、このルールが一致する場合は、最後にRewriteRuleとなります。

+0

しかし、user_settings.phpをリダイレクトとして使用する方法を知っていますか?これにより、404エラーのみが表示されます。 – user591225

+0

'http:// domain.com/settings'が' https:// domain.com/user_settings.php'にリダイレクトされ、URLに 'https:// domain.com/settings'と表示されますか? –

+0

はい、それは私が欲しいものです! – user591225

関連する問題