У меня есть этот код для принуждая SSL на веб-сайте в целом:Force SSL HTTPS для субдомена с .htaccess
RewriteCond %{HTTPS} !=on
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
который я получил от here
Я хотел бы, чтобы это применять только к конкретным поддомена.
Например, если вы планировали посетить http://sub.domain.org
, он должен перенаправить на https://sub.domain.org
.
У меня есть предчувствие, что мне нужно добавить еще один RewriteCond
, который в основном говорит является доменом, попадание в http://sub.domain.org, но я в недоумении о том, как писать этот код.
Я смотрел на другие вопросы, такие как StackOverflow:
Force HTTPS and WWW for domain and only HTTPS for subdomains HTACESS
Force SSL/https using .htaccess and mod_rewrite
и Apache Документах https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond
И я имел эти попытки:
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(reports\.)?uksacb\.org$ [NC]
RewriteRule ^.*$ https://%1%{REQUEST_URI} [R,L]
Сортировка обращенного ответа в этом question/answer:
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} =reports.uksacb.org
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Однако я все еще не в состоянии понять, как сделать это правильно.
Если кто-нибудь может объяснить мне, что я делаю неправильно, что мне нужно сделать, чтобы понять это правильно, и как это сделать, чтобы отладить их условия и правила перезаписи, чтобы убедиться, что он работает правильно. Я был бы очень благодарен , Иногда я думаю, что мой браузер кэширует правила, которые я написал, и мои разные попытки не влияют!
Моя вся .htaccess
выглядит следующим образом:
Опции -MultiViews
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Force SSL
RewriteCond %{HTTPS} !=on
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
'RewriteCond% {HTTP_HOST} = reports.uksacb.org' должен работать. Очистите кеш браузера и повторите проверку с этим условием во 2-ом правиле – anubhava
@anubhava Право даст этот снимок и посмотрит, как он идет благодаря! – haakym