Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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
.htaccess 在主页上强制使用HTTPS,但在所有其他页面上强制使用HTTP_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 在主页上强制使用HTTPS,但在所有其他页面上强制使用HTTP

.htaccess 在主页上强制使用HTTPS,但在所有其他页面上强制使用HTTP,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我试图通过.htaccess在我的主页上强制使用HTTPS,但在所有其他页面上强制使用HTTP。我尝试过许多其他的解决方案,但都没有成功 我的主页的格式应为: 其他页面应为:、等 我的尝试: RewriteEngine On #Disable HTTPS for all pages RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] #Enable HTTPS

我试图通过.htaccess在我的主页上强制使用HTTPS,但在所有其他页面上强制使用HTTP。我尝试过许多其他的解决方案,但都没有成功

我的主页的格式应为:

其他页面应为:、等

我的尝试:

RewriteEngine On     

#Disable HTTPS for all pages
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

#Enable HTTPS for homepage
RewriteCond %{HTTPS} off
RewriteRule ^$ https://%{HTTP_HOST} [R=301,L]
有了这两个规则,页面就不会加载,我会得到一个重定向错误。当其中一条规则被注释掉时,页面会加载,但不会执行我想要的操作。任何帮助都将不胜感激

这样做:

RewriteEngine On     

# Enable HTTPS for homepage
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{HTTPS} off
RewriteRule ^$ https://example.com/ [R=301,L]

# Disable HTTPS for all pages
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{HTTPS} on
RewriteRule . http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
测试前请确保清除浏览器缓存。

请按以下方式进行:

RewriteEngine On     

# Enable HTTPS for homepage
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{HTTPS} off
RewriteRule ^$ https://example.com/ [R=301,L]

# Disable HTTPS for all pages
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{HTTPS} on
RewriteRule . http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

在测试之前,请确保清除浏览器缓存。

这似乎正常,但会导致我的网站上的登录表单无法正常工作,而且当它向url添加HTTPS时,浏览器会说证书无效,并且您的连接不是专用的。使用规则RewriteCond%{SERVER_PORT}80 RewriteRule^(.*)$[R=301,L]强制执行,证书加载为有效,但随后所有页面都加载为HTTPSok请在清除浏览器缓存后立即尝试我的更新规则。这似乎可以正常工作,但会导致我网站上的登录表单无法工作,当它向url添加HTTPS时,浏览器会说证书无效,并且您的连接不是私有的。使用规则RewriteCond%{SERVER_PORT}80 RewriteRule^(.*)$[R=301,L]强制执行,证书加载为有效,但所有页面都加载为HTTPSok请在清除浏览器缓存后立即尝试我的更新规则。