با تشکر از دوست عزیزمان.
بنده روش بهتری را پیشنهاد می کنم که پیشرفته تر از روش قبلی است و از سیستم drupal اقتباس شده است:
برای باز شدن سایت با پیشوند www :
کد PHP:
<ifmodule mod_rewrite.c>
rewriteengine on
rewriterule ^ - [e=protossl]
rewritecond %{https} on
rewriterule ^ - [e=protossl:s]
rewriterule ^ - [e=http_authorization:%{http:authorization}]
rewritecond %{http_host} .
Rewritecond %{http_host} !^www\. [nc]
rewriterule ^ http%{env:protossl}://www.%{http_host}%{request_uri} [l,r=301]
</ifmodule>
برای باز شدن سایت بدون پیشوند www:
کد PHP:
<ifmodule mod_rewrite.c>
rewriteengine on
rewriterule ^ - [e=protossl]
rewritecond %{https} on
rewriterule ^ - [e=protossl:s]
rewriterule ^ - [e=http_authorization:%{http:authorization}]
rewritecond %{http_host} ^www\.(.+)$ [nc]
rewriterule ^ http%{env:protossl}://%1%{request_uri} [l,r=301]
</ifmodule>
برخی از مزایای این روش:
1 - پشتیبانی از https
2 - عدم نیاز به تغییر کد برای دامنه های مختلف. دقیقا همین کد را همه جا می توانید استفاده کنید.
3 - عدم بروز مشکل در صورت نصب نبودن ماژول rewrite
4 - پشتیبانی از احراز هویت کاربر (حتی در حالت استفاده از fastcgi)