Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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_Redirect_Ssl - Fatal编程技术网

.htaccess 将特定页面的https重定向到http

.htaccess 将特定页面的https重定向到http,.htaccess,redirect,ssl,.htaccess,Redirect,Ssl,除了登录和注册页面之外,我想将https请求重定向到http 因此https://example.com将重定向到http://example.com,但example.com/user/login应始终重定向到 如何在.htaccess文件中执行此操作?您可以使用mod_rewrite中的%{https}变量检测当前请求是否使用https。这不是开就是关。请注意,您想要的重定向不会具有post请求的预期行为,因为重定向url将始终使用get请求,而不使用post正文 RewriteEngine

除了登录和注册页面之外,我想将https请求重定向到http

因此https://example.com将重定向到http://example.com,但example.com/user/login应始终重定向到


如何在.htaccess文件中执行此操作?

您可以使用mod_rewrite中的%{https}变量检测当前请求是否使用https。这不是开就是关。请注意,您想要的重定向不会具有post请求的预期行为,因为重定向url将始终使用get请求,而不使用post正文

RewriteEngine on

RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/user/(login|register)$
RewriteRule ^(.*)$ http://example.com/$1 [R,L]

RewriteCond %{HTTPS} =off
RewriteRule ^user/(login|register)$ https://example.com/user/$1 [R,L]

测试重定向是否按预期工作后,将R标志更改为R=301。

谢谢。从https到http的重定向是有效的,但它将我重定向到example.com/index.php?a=user/login,而不是.Place重定向规则,然后再进行任何内部重写。当设置重定向标志时,请求在循环结束后重定向,循环结束时使用L标志。