Как написать.htaccess, который обрабатывает субдомены также для перенаправления на https:

У меня есть это правило.htaccess

RewriteEngine On

RewriteCond% {HTTPS} off

RewriteRule ^ (. *) $ https://%{SERVER_NAME}% {REQUEST_URI} [L, R]

Это охватывает родительский домен, но не поддомен.

Мой поддомен имеет ту же общую папку, что и родительский домен.

example.com перенаправляется на https://example.com/

Но subdomain.example.com не перенаправляется на https://subdomain.example.com/

Как я уже говорил выше, оба указывают на одну и ту же общую папку, поэтому я хочу, чтобы вышеуказанное правило обрабатывало оба.

Но я не хочу писать имя своего домена или субдомена в правиле htaccess. Он должен охватывать любой домен и любой поддомен

1 ответ

Вы можете сделать это с HTTP_HOST заголовок:

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

Таким образом, вы получаете его из запроса, а не используете имя сервера для виртуального хоста. Также упрощает регулярное выражение, так как вы не используете захват.

  1. Перейдите в папку вашего поддомена
  2. Создайте файл.htaccess в этой папке
  3. и вставьте этот код:

просто скопируйте и вставьте этот код:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Другие вопросы по тегам