PHP:将主域重定向到https:// www,子域重定向到https://(不带www)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP:将主域重定向到https:// www,子域重定向到https://(不带www)相关的知识,希望对你有一定的参考价值。

我想修改php文件以满足以下需求:

主域名:

  • http重定向到https
  • non-www重定向到www
  • (对于主域,需要www并且应该出现)

子域:

  • http重定向到https
  • www重定向到non-www
  • (对于子域名,www不是理想的,不应该出现)

注释:子域的内容与主域完全不同(例如,可以是private.website.com或cloud.website.com)。它不仅仅是一种不同的语言。因此,通过浏览器或CMS创建内部转发似乎没有用。它应该在最好的情况下通过.hataccess执行。

答案

如果您使用的是php,那么您需要编写一些条件并且您没有给出子域的任何示例如果您要使用de.example.com,uk.example.com等子域,那么您需要重定向浏览器语言的帮助或者您也可以在访问者位置的帮助下完成

就像

<?php    
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

if($lang=="de")
{

header('Location: https://de.example.com/');

}    
?>

在这种情况下,您需要执行以下操作。

1)http到https

RewriteCond %{HTTPS} !=on

2)非www到www

RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule (.*) https://www.example.com/$1 [R=301,L] 

3)www到非www

RewriteBase /
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

以上是关于PHP:将主域重定向到https:// www,子域重定向到https://(不带www)的主要内容,如果未能解决你的问题,请参考以下文章

Cloudflare从非主域重定向到Github页面

HTACCESS-将辅助域重定向到主域

Nginx:如何仅将主域与 server_name 匹配

域重定向到www时如何将www子域重定向到非www

301 使用 web.config 将一个域重定向到另一个域

301从主域(www和非www)重定向到子域