PDA

View Full Version : انتقال از http به https فقط برای صفحه اصلی سایت (ssl فقط در آدرس صفحه اصلی سایت فعال باشه)



ya5har
جمعه 12 بهمن 1397, 00:05 صبح
سلام
کسی میتونه راهنمایی بکنه که چی کار میتونیم بکنیم که ssl فقط توی صفحه اصلی سایت باشه یعنی آدرس صفحه اصلی سایت با https:// شروع بشه بقیه صفحات با http:// شروع بشه

ali_sed
شنبه 13 بهمن 1397, 10:53 صبح
سلام
کسی میتونه راهنمایی بکنه که چی کار میتونیم بکنیم که ssl فقط توی صفحه اصلی سایت باشه یعنی آدرس صفحه اصلی سایت با https:// شروع بشه بقیه صفحات با http:// شروع بشه



سلام
بسته به شرایط شما ممکن است نیاز به تغییر در کدها باشد. اما ایده کلی را به شما میدهد.
در بخش اول اگر ssl فعال نباشد و url برابر با / یا index.php باشد کاربر را به آدرس امن میفرستد و در بخش دوم اگر ssl فعال باشد و آدرس غیر از / و index.php باشد کاربر را به آدرس غیر امن میفرستد.


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} ^/+$ [OR]
RewriteCond %{REQUEST_URI} ^/+index\.php$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/+$
RewriteCond %{REQUEST_URI} !^/+index\.php$
RewriteRule (.*) http://%{HTTP_HOST}/$1 [R=301,L]
<IfModule mod_rewrite.c>

ya5har
شنبه 13 بهمن 1397, 23:35 عصر
سلام
بسته به شرایط شما ممکن است نیاز به تغییر در کدها باشد. اما ایده کلی را به شما میدهد.
در بخش اول اگر ssl فعال نباشد و url برابر با / یا index.php باشد کاربر را به آدرس امن میفرستد و در بخش دوم اگر ssl فعال باشد و آدرس غیر از / و index.php باشد کاربر را به آدرس غیر امن میفرستد.


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} ^/+$ [OR]
RewriteCond %{REQUEST_URI} ^/+index\.php$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/+$
RewriteCond %{REQUEST_URI} !^/+index\.php$
RewriteRule (.*) http://%{HTTP_HOST}/$1 [R=301,L]
<IfModule mod_rewrite.c>


ممنون دقیقا شید عین همونی که می خواستم فقط تو صفحه اصلی سایت css را نمیشناسه و سایتو قاطی پاتی نشون میده انگار استایلی تعریف نشده

ali_sed
سه شنبه 16 بهمن 1397, 12:14 عصر
ممنون دقیقا شید عین همونی که می خواستم فقط تو صفحه اصلی سایت css را نمیشناسه و سایتو قاطی پاتی نشون میده انگار استایلی تعریف نشده
سلام
خب در قسمت دوم بررسی کنید اگر پسوند فایل php است ریدایرکت را انجام دهید می توانید پسوندهای دیگر را نیز اضافه کنید. مثلا


RewriteCond %{REQUEST_FILENAME} \.(html|php)$




<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} ^/+$ [OR]
RewriteCond %{REQUEST_URI} ^/+index\.php$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} \.php$
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/+$
RewriteCond %{REQUEST_URI} !^/+index\.php$
RewriteRule (.*) http://%{HTTP_HOST}/$1 [R=301,L]
<IfModule mod_rewrite.c>