با تشکر از دوست عزیزمان.
بنده روش بهتری را پیشنهاد می کنم که پیشرفته تر از روش قبلی است و از سیستم 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)