LINUX.ORG.RU

301 редирект с http на https кроме адресов, где встречаются определенные символы

 , , ,


0

1

Добрый день. Хочу перевести сайт на https. Всё нормально перевелось путём добавления в .htaccess следующего:

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Всё работает, но нужно чтобы определенные адреса (в которых присутствуют некоторые символы) были доступны и по http.

Пробовал такой вариант, не помогает:

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !/wc-api/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Не работает, всё равно если в адресе присутствует /wc-api/ переводит на https. Что может быть не так? Как это заставить корректно работать?

На всякий случай, привожу полное содержимое .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
RewriteRule ^yandex_market.xml index.php
RewriteRule ^yandex_market.xml.gz index.php
RewriteRule ^Eksport-yml-standartnii.xml index.php
RewriteRule ^Eksport-yml-standartnii.xml.gz index.php

# END WordPress

Спасибо за ответы!

Спасибо за помощь! Проблема решилась вот так:

# Всё кроме перенаправляем в https
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/wc-api/ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Остальное в http
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /wc-api/ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
rnr1721 ()