2016-03-31 3 views
0

Я пытаюсь перенаправить мой URL на двух условиях:не в состоянии правильно перенаправить мой URL

  1. Если HTTPS Выкл.
  2. Если у URL-адреса нет www.

Я могу перенаправить мой URL в обоих случаях, но проблема возникает, когда URL имеет форму https://example.in/xyz, в этом случае я хочу мой URL для перенаправления https://www.example.in/xyz, но я не в состоянии.

Ниже моя конфигурация в файле по умолчанию

ServerName example.in  
Redirect permanent/https://example.in/  
RewriteEngine On  
RewriteCond %{HTTPS} off  
RewriteCond %{HTTP_HOST} ^([a-z.]+)?example.in$ [NC]  
RewriteCond %{HTTP_HOST} !^www. [NC]  
RewriteRule ^/?(.*) https://www.example.in/$1 [NC,R=301,L]  

ответ

0

Вы RewriteRule будет работать только тогда, когда все условия будут выполнены. И в вашем примере URL-адрес уже использует HTTPS, поэтому первое условие не выполняется.

Если вы хотите, чтобы ваше правило работало, если ЛЮБЫЕ условия выполнены, вам необходимо добавить флаг [OR] в первые два условия.

RewriteCond %{HTTPS} off  
RewriteCond %{HTTP_HOST} ^([a-z.]+)?example.in$ [NC,OR]  
RewriteCond %{HTTP_HOST} !^www. [NC,OR]  
RewriteRule ^/?(.*) https://www.example.in/$1 [NC,R=301,L] 
+0

Привет Ларс - Спасибо за ввод, но я все еще сталкиваюсь с той же проблемой после попытки вашего решения. –

+0

Я также обнаружил, что если URL-адрес jhttp: //www.example.in/xyz, он перенаправляется на jhttps: //www.example.in/xyz. Следовательно, ваш ответ о том, что переписывание работает, когда выполняются все условия, неверен или мне что-то не хватает в моем понимании. –

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