我是网络开发的新手,刚刚购买了 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/