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]