Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/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
Apache 将所有https请求重定向到http_Apache_.htaccess_Http_Mod Rewrite_Https - Fatal编程技术网

Apache 将所有https请求重定向到http

Apache 将所有https请求重定向到http,apache,.htaccess,http,mod-rewrite,https,Apache,.htaccess,Http,Mod Rewrite,Https,这里有个小问题,在将我的站点更改为CMS之前,我遇到了将所有https://请求重定向到http://的问题 我的.htaccess中有以下内容,这些都是我做的 RewriteCond %{SERVER_PORT} ^443$ RewriteRule ^(.*)$ http://www.mysite.net/$1 [L,R=301] 但是在将其更改为需要不同设置的CMS之后,我不能再使用上述代码,因为它没有完成最初打算做的事情 这是我在.htaccess RewriteEngine On

这里有个小问题,在将我的站点更改为CMS之前,我遇到了将所有
https://
请求重定向到
http://
的问题

我的
.htaccess
中有以下内容,这些都是我做的

 RewriteCond %{SERVER_PORT} ^443$
 RewriteRule ^(.*)$ http://www.mysite.net/$1 [L,R=301]
但是在将其更改为需要不同设置的CMS之后,我不能再使用上述代码,因为它没有完成最初打算做的事情

这是我在
.htaccess

 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-l
 RewriteRule ^(.*)$ index.php/$1 [QSA,L,NC]
 RewriteCond %{HTTP_HOST} !^(www\.)mysite\.net$ [NC]
 RewriteRule ^(.*)$ http://www.mysite.net/$1 [L,R=301]
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite.net/.*$ [NC]
 RewriteRule \.(gif|jpg|png|tif|js|css|xls|xlsx|zip|rar|pdf|ods|ots)$ - [F]
你能告诉我如何正确地完成这一切吗?因为我真的不想因为这个问题而把所有的网站内容都翻一番,而是将其重定向到一个一致的协议


提前感谢

您可以这样访问.htaccess:

 RewriteEngine On
 RewriteBase /

 RewriteCond %{HTTP_HOST} !^www\. [NC]
 RewriteRule ^ http://www.mysite.net%{REQUEST_URI} [L,R=301,NE]

 RewriteCond %{HTTPS} on [OR]
 RewriteCond %{HTTP:X-Forwarded-Proto} https [OR]
 RewriteCond %{SERVER_PORT} ^443$
 RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite.net/.*$ [NC]
 RewriteRule \.(gif|jpg|png|tif|js|css|xls|xlsx|zip|rar|pdf|ods|ots)$ - [F,NC]

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-l
 RewriteRule ^(.+)$ index.php/$1 [L]

在Firebug中试试这个,看看你是否得到了301。使用此代码进一步创建名为
info.php
的文件
,然后打开
https://mysite.net/info.php
检查它的
文档根目录
值是多少。文档根目录值是/var/www/vhosts/mysite.net/httpdocsIs它与http站点的
文档根目录
完全相同吗?你在Firebug中得到301了吗?我试过使用Firebug,但它不是301ing,而是在css文件中得到403,当我尝试使用https://时,它是重定向,没有结尾,它是完全相同的文档根