Вопрос по seo, routing, iis-6, asp.net-mvc, asp.net – Сайт ASP.net MVC: перенаправить все запросы «не WWW» в WWW

6

Недавно я перенес сайт ASP.net на сайт ASP.net MVC. Ранее было два заголовка узла: один mydomain.com, а другой - www.mydomain.com. Мой SEO говорит, что вы должны использовать только один URL "www.domain.com» для преимущества SEO.

Я ищу возможность сделать 301 постоянное перенаправление всех запросов mydomain.com на www.mydomain.com.

Сайт размещен в IIS6 и разработан в ASP.net MVC 4.

Ваш Ответ

4   ответа
18

Вы можете сделать это из вашего файла web.config


    
        
          
            
            
              
            
            
          
        
    

Если я могу, что этоhttpRedirect Элемент хорош для здесь? Michal Hosala
@ Tommy - было бы лучше использовать модуль перезаписи URL IIS7 или функциональность маршрутизации .Net в пределах webApp iself для перенаправления, если у вас есть возможность использовать оба? Или (третий вариант) я должен просто ответить на оба и поддерживать URL для обоих, используя обратный прокси в модуле перезаписи URL? ... хотя последний третий вариант не идеален для SEO, я думаю. johntrepreneur
@MichalHosala - я на 99% уверен, что это ничего не делает. Я извлек это из одного из наших конфигурационных файлов, которые мы делаем, похоже, что мы оставили в файле и другие попытки (обратите внимание, что enabled = false). Но, отличный улов, он был на SO более 2 лет, и никто не спрашивал об этом. Tommy
@MichalHosala - и почему нетВам нравится mydomain.com? :П Tommy
0

К несчастью,модуль перезаписи URL не работает с IIS6 (только IIS7 или выше). Рассматривали ли вы создание собственного HttpModule, что-то вроде этого?

IIS 6 как перенаправить с http://example.com/* на http://www.example.com/*

Или вы можете использовать стороннее решение, подобное одному из следующих:

http://iirf.codeplex.com/

http://www.urlrewriting.net/149/en/home.html

http://www.isapirewrite.com/

http://urlrewriter.net/

0

(Требуется IIS 7 или выше)

отhttp://www.codeproject.com/Articles/87759/Redirecting-to-WWW-on-ASP-NET-and-IIS

(Аналогично вышеуказанному решению, но не требует добавления собственного доменного имени.)


    
        
            
                
                
                    
                    
                        
                    
                    
                
            
        
    

Обратите внимание, что вы, скорее всего, увидите волнистые линии под тегом с сообщением о том, что тег недействителен. Я получил это сообщение, но на самом деле оно работало просто отлично.

Если вы хотите, чтобы intellisense работал, вы можете попробовать это обновление здесь ...

http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/

Более подробную информацию о httpRedirect можно найти здесь ...

http://www.iis.net/configreference/system.webserver/httpredirect

5

Вы можете использовать config или Url Rewriter в IIS, но лучший метод, который ямы нашли, просто положить некоторый код вApplication_BeginRequest() в вашемglobal.asax.cs как это:

var HOST = "www.mydomain.com";

if ( !Request.ServerVariables[ "HTTP_HOST" ].Equals(
  HOST,
  StringComparison.InvariantCultureIgnoreCase )
)
{
  Response.RedirectPermanent(
    ( HttpContext.Current.Request.IsSecureConnection ? "https://" : "http://" )
    + HOST
    + HttpContext.Current.Request.RawUrl );
}

Потому что ты'Делая это в коде, вы можете использовать любую логику для каждого запроса.

меня судили <переписывание> правило в конфигурации во всех аспектах, но не удалось в IIS 7. но это решение работает от меня. Большое спасибо. CrazyDev

Похожие вопросы