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

问题描述 投票:1回答:1

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

主域名:

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

子域:

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

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

apache redirect mod-rewrite https subdomain
1个回答
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]
© www.soinside.com 2019 - 2024. All rights reserved.