2014-11-25 1 views
0

Возьмем, к примеру, изображение ниже. Проблема в том, что 3 URL-адреса указывают на один и тот же сервер, и мне нужно создать 301 redirect от одного к другому в основном по причинам SEO. Но я не могу сделать это в HTAccess, потому что он создал цикл бесконечности для одной из этих областей, я также попробовать что-то вроде этого ::Создание 301 Перенаправления нескольких URL-адресов на одном сервере?

if ($do_redirect !== '' && trim($do_redirect,'/') !== trim($userrequest,'/')) { 
     if (strpos($do_redirect,'/') === 0){ 
      $do_redirect = home_url().$do_redirect; 
     } 
     header ('HTTP/1.1 301 Moved Permanently'); 
     header ('Location: ' . $do_redirect); 
     exit(); 
    } 

Но в теории это должно было работать, но когда я сделал проверил такой домен с curl -I domain.com я получаю:

HTTP/1.1 200 OK
Дата: Вт, 25 ноября 2014 13:33:49 GMT

вместо:

HTTP/1.1 301 Moved ПОСТОЯННО
Дата: Tue, 25 Nov 2014 13:33:04 GMT

Любые идеи?

enter image description here

+0

Немного непонятно, как настроены домены. Вы пытаетесь перенаправить эти 3 домена на IP-адрес или все они разрешают этот IP-адрес и вы хотите перенаправить на один домен? – Machavity

+0

Все они разрешают один и тот же IP-адрес. извините, если я не был crear :) – jycr753

+0

Можете ли вы показать правило перенаправления .htaccess, вызывающее цикл перенаправления, чтобы мы могли предоставить вам рабочую версию. – anubhava

ответ

1

Лучшее решение, чтобы сделать это в конце Apache.

<VirtualHost *:80> 
     ServerName sample.org 
     Redirect 301/http://www.newdomain.com/ 
</VirtualHost> 

Apache выпустит 301 с меньшими накладными расходами таким образом. Если вы не можете этого сделать, решение PHP выглядит так:

if($_SERVER['HTTP_HOST'] == 'sample.org') { 
    header ('HTTP/1.1 301 Moved Permanently'); 
    header ('Location: http://www.newdomain.com/'); 
    exit(); 
} 
Смежные вопросы