Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 重写有www和无www的规则_Regex_Apache_.htaccess_Mod Rewrite_Rewrite - Fatal编程技术网

Regex 重写有www和无www的规则

Regex 重写有www和无www的规则,regex,apache,.htaccess,mod-rewrite,rewrite,Regex,Apache,.htaccess,Mod Rewrite,Rewrite,我搜索了很多,但我找不到我的具体问题的答案 当前所有用户重定向到https://www.mydomain.com如果他们键入以下内容之一 http://mydomain.com(将http替换为https,并在此处添加www) http://www.mydomain.com(此处将http替换为https) https://mydomain.com(在此处附加www) 对于上述情况,我在.htaccess中有此代码 RewriteCond %{HTTPS} !=on RewriteRule

我搜索了很多,但我找不到我的具体问题的答案

当前所有用户重定向到
https://www.mydomain.com
如果他们键入以下内容之一

  • http://mydomain.com
    (将http替换为https,并在此处添加www)
  • http://www.mydomain.com
    (此处将http替换为https)
  • https://mydomain.com
    (在此处附加www)
对于上述情况,我在.htaccess中有此代码

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
我不知道如何停止任何子域的重定向。e、 g.如果键入以下内容,则不应将用户重定向到
https

  • abc.mydomain.com
    (子域可以是任何名称)
  • http://abc.mydomain.com
你知道怎么做吗

提前感谢您的帮助。

此规则应适用于:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
尝试:


kj

有一些相关问题——不是100%——但很有用——嘿,阿努巴瓦,它不起作用。我得到循环重定向错误。Anubhava,你的代码只对www有效,没有www。但它仍然不会停止子域的重定向。仍在重定向到。我不希望我的子域重定向到SSL。是的,我犯了一个错误,现在修复了它。Try againIt不适用于子域。当我键入abc.mydomain.com时。它将其重定向到
RewriteEngine On

RewriteCond %{SERVER_PORT} 80

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]