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

Apache htaccess перенаправляет http / www на https / без www

Для перенаправления с

 - http://www.domain.com
 - http://domain.com
 - https://www.domain.com

к https://domain.com

Я использую следующий (apache) htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} !=on
   RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Это работает, но я думаю, что это не лучший способ. Первые два раздела еще можно было бы объединить, но я не знаю как.

Ваш вариант использования - это пример из учебника о том, когда полностью избегать правил перезаписи.

Чтобы перенаправить URL-адреса http на https, просто сделайте следующее:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect "/" "https://www.example.com/"
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    # ... SSL configuration goes here
</VirtualHost>

Дополнительно: вам следует полностью избегать использования файлов .htaccess если у вас есть доступ к файлу конфигурации главного сервера httpd. С помощью .htaccess файлы замедляет ваш http-сервер Apache. Любую директиву, которую вы можете включить в файл .htaccess, лучше установить в блоке Directory, так как это будет иметь тот же эффект с лучшей производительностью. Источник: Руководство по Apache

Для получения дополнительной информации см. mod_rewrite и ааа документация.