2015-11-27 3 views
1

ПРИМЕЧАНИЕ: конфигурация и ошибка обновлены, чтобы быть более четкими.mod_rewrite для ssl не работает на example.com, но делает это для example.com/index.html

У меня есть следующие .htaccess для моего сайта работает Apach 2.4 на Ubuntu:

<IfModule mod_rewrite.c> 
RewriteEngine on 
# Redirect to HTTPS 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteCond %{HTTP_HOST} ^(www\.)example1.com [OR] 
RewriteCond %{HTTP_HOST} ^(www\.)example2.com 
RewriteRule ^(.*)$ https://www.example2.com/$1 [L,R=301] 
</IfModule> 

Есть ли что-то мне не хватает, так что он будет перенаправлять только с базовой / URL?

ответ

1

Проблема эти два правила:

RewriteCond %{HTTP_HOST} ^(www\.)example1.com [OR] 
RewriteCond %{HTTP_HOST} ^(www\.)example2.com 

Вам нужно добавить ? сделать www. дополнительно:

RewriteCond %{HTTP_HOST} ^(www\.)?example1.com [OR] 
RewriteCond %{HTTP_HOST} ^(www\.)?example2.com 
+0

, который разрушает все. где com 'example. (com | net)/index.html' или' www.example. (com | net)/index.html' перенаправляется на 'https', теперь это не так. (com | net) 'и www.example. (com | net)' он остается как 'http' –

+0

, фактически просматривая сейчас, мой пример в OP заставляет его работать, когда я включаю www но не удается, если я его опустил. Не пропустите, чтобы сказать это, чтобы сделать это для www.example.xxx и example.xxx? –

+0

Фактически я понял, что мои адресация адресов не была хорошей. Это 'example1.com' и' example2.com' –

Смежные вопросы