Я хотел бы перенаправить всех на мой сайт https: // (не https://www) и принудительно установить HTTPS в одном перенаправлении. Мои соответствующие части .htaccess:
# Check if HTTPS and WWW
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
# Force HTTPS and remove WWW
RewriteRule ^(.*)/$ https://example.com/$1 [R=301,L]
Проблема? Это не работает для подстраниц!
Хотя он работает для главной страницы (например, http://www.example.com перенаправляет на https://example.com),, он не работает для подстраниц (например, http://www.example.com/contact sholud перенаправить меня на https://example.com/contact но только www удален, и я в конечном итоге на сайте, не являющемся https: http://example.com/contact).
Как изменить мои правила .htaccess, заставить HTTPS и удалить WWW для моего сайта и всех страниц сайта в одном перенаправлении?
После изменений: работает для подстраниц, но в 2 перенаправлениях. Можно ли это сделать только в одном?
Благодаря ответу Nisarg и немного копаний мой сайт теперь правильно перенаправляет на HTTPS даже на подстраницах. Ура!
Соответствующий код .htaccess теперь выглядит так:
RewriteEngine On
RewriteCond %{HTTPS} =off [OR]
RewriteCond %{HTTP_HOST} !^example\.com$
RewriteRule ^(.*)$ "https://example.com/$1" [R=301,L]
# remaining htaccess mod_rewrite CODE for WordPress
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
К сожалению, для обработки требуется 2 шага. Итак, вопрос до сих пор: это можно сделать за 1 редирект ?