Lighttpd przekierowanie domeny (z www) na (bez www)

Konrad Kowalski
  • Konrad Kowalski
  • 19/01/2011
  • Lighttpd
  • 2 komentarze
Lighttpd

Z wielu powodów możemy chcieć przekierować ruch z domeny z www(lub z jakiejkolwiek innej subdomeny) na domenę bez www.

Pierwszym z nich jest traktowanie domeny z www oraz domeny bez www przez wyszukiwarki internetowe jako dwa odrębne serwisy. Linki prowadzące do domeny z www i bez www będą liczone oddzielnie. W konsekwencji „siła” domeny będzie podzielona na dwie części.

Aby temu zapobiec możemy przekierować ruch z jednej domeny na drugą. Należy do tego użyć przekierowania typu: 301: Moved Permanently.

Taką funkcjonalność w Lighttpd zapewnia nam mod_redirect.

Aktywacja mod_redirect w Lighttpd

Pierwszą czynnością, którą należy wykonać to aktywacja mod_redirect w pliku konfiguracyjnym Lighttpd.

nano /etc/lighttpd/lighttpd.conf

W sekcji server.modules musimy od komentować wpis:

 "mod_redirect"
server.modules              = (
            "mod_access",
            "mod_alias",
            ...
#          "mod_rewrite",
#          "mod_redirect"
)
server.modules              = (
            "mod_access",
            "mod_alias",
            "mod_redirect",
            ...
#          "mod_rewrite"    
)

Więcej na temat konfiguracji modułów znajdziesz w artykule: Podstawy konfiguracji modułów Lighttpd.

Konfiguracja przekierowania (mod_redirect) w Lighttpd

Aby przekierowanie zaczęło funkcjonować w pliku konfiguracyjnym należy dopisać:

$HTTP["host"] =~ "^www\.(.*)$" {
  url.redirect = ( "^/(.*)" => "http://%1/$1" )
}

Po tych czynnościach restartujemy lighttpd:

/etc/init.d/lighttpd restart

Od tej chwili przekierowanie z domeny z www na domenę bez www (www.kowalsio.com -> kowalsio.com) powiano już działać.

Przekierowanie kilku subdomen naraz

Aby przekierować kilka subdomen na domenę główna naraz w pliku konfiguracyjnym należy wpisać:

$HTTP["host"] !~ "^(www|mysql)\.(kowalsio\.com)$" {
  $HTTP["host"] =~ "^(.+\.)?(kowalsio\.com)$" {
    url.redirect = (
      "^/(.*)" => "http://www.%2/$1" 
    )
  }
} 

W powyższym przykładzie subdomena www i mysql w domenie kowalsio.com (www.kowalsio.com -> kowalsio.com, mysql.kowalsio.com -> kowalsio.com itp.) zostanie przekierowana na domenę główną kowalsio.com

Działanie „na żywo” możecie sprawdzić wchodząc na stronę www.kowalsio.com, lighttpd automatycznie przekieruje waszą przeglądarkę na adres kowalsio.com (bez www).

Natomiast jeśli lubisz adresy z www zobacz artykuł Lighttpd przekierowanie domeny (bez www) na (z www) .

2 komentarze

Możesz dodawać komentarze do tego artykułu.


  • A co z przekierowaniem na bez www na poziomie serwa DNS? Czy to nie jest lepsze rozwiązanie?

    MrMgr 7 lat temu Odpowiedz


    • Konrad Kowalski

      Większość firm oferuje redirect 301 [czyli taki sam jak tu zaprezentowany]. W DNS chyba się nie bardzo da to zrobić. Chodź mogę się mylić.

      Konrad Kowalski 7 lat temu Odpowiedz


Dodaj komentarz