2013-05-11 3 views
1

Я хотел бы получить это выправить раз и навсегда:PHP перенаправление для WWW к не-WWW с 301 на IIS

<?php if ($_SERVER['HTTP_HOST'] != 'domain.com'){ 
header("Location: http://domain.com" 
.$_SERVER['REQUEST_URI']); 
} ?> 

Это будет посылать весь трафик версии NON-WWW.

Мой вопрос: могу ли я добавить заголовок ('HTTP/1.1 301 Moved Permanentently'); ' безопасно, не повесив все на себя?

Я использую сервер IIS, поэтому .htaccess не подходит, и все страницы закодированы в PHP - все решения приветствуются.

ответ

2

Конечно, вы можете. Воспользуйтесь всеми параметрами предлагаемых header():

<?php 

if ($_SERVER['HTTP_HOST'] != 'domain.com'){ 
    header("HTTP/1.1 301 Moved Permanently", true, 301); 
    header("Location: http://domain.com".$_SERVER['REQUEST_URI']); 
} 

Последний параметр заставляет код ответа быть 301, как вы хотите.

+0

Спасибо - отлично, чтобы подтвердить. – ncompass

+0

Да принято - но там была проблема с моим/нашим кодом ... Это должно быть: ' ' – ncompass

0

Конечно, вы можете ничего не испортить! Но это должно быть в предложении, если позади расположения заголовка строки:

<?php 
if ($_SERVER['HTTP_HOST'] != 'domain.com'){ 
    header('HTTP/1.1 301 Moved Permanently'); 
    header("Location: http://domain.com".$_SERVER['REQUEST_URI']); 
} 
?> 

Но лучше, если вы используете URL Rewrite (ака «IIS mod_rewrite»): http://www.iis.net/downloads/microsoft/url-rewrite Или некоторые другие перенаправления не в коде PHP.

+0

Спасибо - отлично, чтобы подтвердить – ncompass

+0

О, черт возьми, тот же ответ почти в то же время: D – cseppento

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