2015-08-10 3 views
0

Я получил следующее .htaccessApache/Htaccess перенаправить все https: // WWW

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteCond %{HTTPS_HOST} ^www\. [NC] 
RewriteCond %{HTTPS_HOST} !^www\. [NC] 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

То, что я хочу сделать, это перенаправить все, чтобы https://www. Я думал, что мой htaccess должен сделать именно это, какова моя ошибка?

+0

Вопрос был дан здесь [ссылка] (http://stackoverflow.com/questions/12050590/redirect-non-www-to-www-in-htaccess) –

ответ

0

Ваши условия перезаписи противоречивы и прекратят выполнение правила. Вы можете использовать это единственное правило, чтобы сделать как https и добавить www:

RewriteCond %{HTTP_HOST} !^www\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://www.%1%{REQUEST_URI} [R=302,L,NE] 

Это создаст 302 (временное) перенаправление. Вы также можете использовать

RewriteRule^https://www.%1%{REQUEST_URI} [R=301,L,NE] 

, чтобы создать 301 (постоянную) переадресацию.

+0

Хмм. Правильно ли я полагаю, что использование '[R = 301, L, NE]' в последней строке приведет к перенаправлению * 301 Permanent *? Благодаря! – jpaugh

+0

Да, это правильно. Я предлагаю 'R = 302' для легкого тестирования перенаправления, в противном случае 302 агрессивно кэшируется в браузерах. – anubhava

+1

Удивительный! Благодаря! – jpaugh

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