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

时间:2017-12-18 17:12:39

标签: apache redirect mod-rewrite https subdomain

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

主域名

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

子站点:

  • http重定向到https
  • www重定向到non-www
  • (对于子域名,不需要www,不应该出现)

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

1 个答案:

答案 0 :(得分:2)

如果您使用的是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]