apache - 对主域文件强制使用 SSL,但不对任何文件夹内的文件强制使用 SSL

标签 apache .htaccess mod-rewrite ssl

我是网络开发的新手,刚刚购买了 SSL 证书并进行了大量搜索以将域强制转换为 SSL,这是我的工作 .htaccess 代码

#Force non-www:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.domain\.com [OR]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301]

我试图在主域的所有文件上强制使用不带 www 的 SSL,而不是该域的任何文件夹/目录中的文件

例如: 如果有人打开

domain.com or www.domain.com force to -> https://domain.com

上面的代码正在工作但是 我试图在 domain.com 的根目录下强制文件 就像这些示例将清除所有内容

domain.com/abc.php --> https://domain.com/abc.php
www.domain.com/def.php --> https://domain.com/def.php
domain.com/abc/xyz.php --> http://domain.com/abc/xyz.php
www.domain.com/abc/xyz.php --> http://domain.com/abc/xyz.php
https://domain.com/abc/xyz.php --> http://domain.com/abc/xyz.php
https://www.domain.com/abc/xyz.php --> http://domain.com/abc/xyz.php

简而言之,我/我试图将域根目录中的每个文件强制为非 WWW HTTPS。 但是该域的任何目录下的任何文件都应该在没有 SSL 的情况下强制访问 NON-WWW。

我尽了一切可能,但我做不到。 甚至不知道这是否可以通过 .htaccess 实现。

最佳答案

尝试:

#Force non-www:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.domain\.com [OR]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^([^/]+)$ https://domain.com/$1 [L,R=301]
RewriteCond %{HTTPS} on 
RewriteRule ^(.+/.*)$ http://example.com/$1 [L,R=301]

关于apache - 对主域文件强制使用 SSL,但不对任何文件夹内的文件强制使用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36362530/

相关文章:

apache - 引用: mod_rewrite, URL重写和 "pretty links"解释

apache - 如何在 Apache 中删除 cookie

apache - 如何将页面重定向到 https 和站点的 'www' 版本

regex - .htaccess 重定向字符串之前的任何字符

.htaccess - 301重定向/所有图片到CDN

apache - 组合两个 mod_rewrite 规则

apache - OpenStack 牛顿仪表板无法访问 CentOS 7

javascript - 为什么 apache 不在当前元素中查找 Assets ?

javascript - 删除(取消设置)今天之前创建的所有较旧的 cookie 并在浏览器历史记录中保留子目录?

apache - 重写空查询字符串