Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Apache 使用htaccess重定向(再次)-包括SSL和规范url_Apache_.htaccess_Ssl_Subdomain - Fatal编程技术网

Apache 使用htaccess重定向(再次)-包括SSL和规范url

Apache 使用htaccess重定向(再次)-包括SSL和规范url,apache,.htaccess,ssl,subdomain,Apache,.htaccess,Ssl,Subdomain,我有一个主站点@sitename.com,我需要强制使用SSL并确保删除“www”(如果存在)。这适用于以下.htaccess: RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www.(.*)//((s)on|s.*)$ [NC] RewriteRule ^ http%3://%1%{REQUEST_URI} [R=301] SSLOptions +StrictRequire SSLRequireSSL SSLRequire %{HTTP_HOST} eq "sit

我有一个主站点@sitename.com,我需要强制使用SSL并确保删除“www”(如果存在)。这适用于以下.htaccess:

RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www.(.*)//((s)on|s.*)$ [NC]
RewriteRule ^ http%3://%1%{REQUEST_URI} [R=301]

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "sitename.com"
ErrorDocument 403 https://sitename.com
但是,这会中断子域的重定向,即subdomain.sitename.com现在重定向到sitename.com

是否有一个简单的添加到htaccess的方法可以强制子域使用非ssl和正确的位置,而不会破坏其他逻辑

我试过了

RewriteCond %{HTTP_HOST} ^subdomain\.* [NC]
RewriteRule ^ http://subdomain.sitename.com [L]

在htaccess的顶部,但这没有效果。

您的原始规则不应该与类似于
subdomain.domain.com的主机匹配,它不应该与任何不以
www
开头的主机匹配。是的,但我认为最后一条规则(SSL)会匹配吗?eq“sitename.com”是否包括“blah.sitename.com”?我不想强制子域使用SSL。如果要强制域使用SSL,则不需要该指令。很抱歉,我不知道您指的是什么。我需要的是这样的:如果子域转到子域{停止规则处理}否则如果域以www开始,则修剪www和If协议!=SSL强制SSL。如果有任何代码片段可以帮助您的话?我发现解决方案[这里][1][1]:非常简单:)