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 防止将特定页面重定向到https_Apache_.htaccess_Redirect_Https - Fatal编程技术网

Apache 防止将特定页面重定向到https

Apache 防止将特定页面重定向到https,apache,.htaccess,redirect,https,Apache,.htaccess,Redirect,Https,我需要避免将页面从我的站点重定向到https,但我不想使用php、java或其他编程语言 我想使用.htaccess 在我的网站上,我使用.htaccess中的以下规则将网站上的所有页面重定向到HTTPS RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 它工作得很好 但是,有一些特定的页面需要在HTTP中显示,因为它们通过HTTP中

我需要避免将页面从我的站点重定向到https,但我不想使用php、java或其他编程语言

我想使用.htaccess

在我的网站上,我使用.htaccess中的以下规则将网站上的所有页面重定向到HTTPS

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
它工作得很好

但是,有一些特定的页面需要在HTTP中显示,因为它们通过HTTP中的iframe显示外部内容,而HTTP不显示在HTTPS中

我试着在url的末尾添加代码no\u ssl

我在htaccess中添加了下面的摘录,这样ssl就不会应用于以无ssl结尾的URL

RewriteCond ^(.*)$ ([^n]|n[^o]|no[^_]|no_[^s]|no_s[^s]|no_ss[^l])$ 
因此,完整的代码如下所示:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond ^(.*)$ ([^n]|n[^o]|no[^_]|no_[^s]|no_s[^s]|no_ss[^l])$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
所以我希望页面mydomain.com/contact-no_ssl不会被重定向到https。但它不起作用

我还测试了代码:

RewriteCond %{REQUEST_URI} !^(.*)no_ssl$

但是,什么都不管用

我最多只能被重定向到主页

有人能帮我吗?

你可以试试这个规则:

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteCond %{THE_REQUEST} !no_ssl[\s?] [NC] 
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
使用
请求
而不是
请求
,因为
在应用其他规则后,请求
不会针对单个请求进行更新。

我尝试了此操作,但不起作用:
RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteCond %{THE_REQUEST} !no_ssl[\s?] [NC] 
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]