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

Apache PHP:将主域重定向到https://www,子域到https://(不含www),apache,redirect,mod-rewrite,https,subdomain,Apache,Redirect,Mod Rewrite,Https,Subdomain,我想修改php-文件以满足以下需求: 主域: 将http重定向到https 将非www重定向到www (对于主域,www是需要的,应该出现) 子域: 将http重定向到https 将www重定向到非www (对于子域,www是不需要的,不应该出现) 注释:子域的内容与主域完全不同(例如可以是private.website.com或cloud.website.com)。它不是一种不同的语言。因此,通过浏览器或CMS创建内部转发似乎没有用。最好通过.hataccess执行。如果您使用的是p

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

主域:

  • http
    重定向到
    https
  • 非www
    重定向到
    www
  • (对于主域,
    www
    是需要的,应该出现)
子域:

  • http
    重定向到
    https
  • www
    重定向到
    非www
  • (对于子域,
    www
    是不需要的,不应该出现)


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

如果您使用的是php,那么您需要编写一些条件,如果您要使用诸如de.example.com之类的子域,您没有给出任何子域示例,然后,您需要借助浏览器语言进行重定向,也可以借助访问者位置进行重定向

就像

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

if($lang=="de")
{

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

}    
?>
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]
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]