Назад | Перейти на главную страницу

Перенаправить HTTPS на HTTP

Проблема: я не могу заставить свой сайт перенаправить с https на http.

Хорошо, есть ряд решений, предлагаемых по этому поводу, но, похоже, ни одно из них не работает для меня. Чтобы установить несколько вещей, у меня уже есть .htaccess, нормально работающий на этом сайте, поэтому необходимость установки AllowOverride исключена из уравнения.

Самое простое, что я видел, - это добавить что-то вроде:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

... в мой файл .htaccess. Однако это вообще ничего не делает ... как будто условие не выполняется. После установки и посещения https://mysite.com Я не перенаправлен на http://mysite.com как я и ожидал, я просто перейду к https://mysite.com.

Какова причина этого? Я ожидал, что с указанным выше в моем файле .htaccess и с файлами .htaccess, нормально работающими на моем сайте, когда я посещу любой URL-адрес https, я буду перенаправлен на его http-эквивалент.


Больше информации

На промежуточном сервере На моем промежуточном сервере добавление вышеуказанного в htaccess отправляет мне URL-адрес с добавленным к нему параметром, например http://mystaging-site.com/?ysid=2pnd073423ra966tihf22rfr9a2

На Prod Server Быстрый тест на производстве приводит к странице с ошибкой apache, в которой говорится, что страница была перемещена и произошла ошибка сервера 500.

Конкретные сообщения об ошибке:

Found

The document has moved here. <--- this link simply points to the same page I am already on

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Вот существующий htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

И следующее не удается:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTPS} =on  //(with or without the equals symbol this fails)
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTP_HOST} !^www.mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Близко, но не совсем, попробуйте:

RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]