Witam.

Chciałbym, żeby w moim serwisie, wszystkie poddomeny były bez www. A więc konkretnie, żeby w widoczny sposób następowały przekierowania :

1) www.poddomena.ludziesportu.pl --> poddomena.ludziesportu.pl

oraz

2) www.poddomena.ludziesportu.pl/cokolwiek --> poddomena.ludziesportu.pl/cokolwiek

gdzie cokolwiek to dowolny plik html lub ciąg parametrów php.


Równocześnie chcę, żeby domena główna była zawsze z www, czyli potrzebne takie przekierowania:

3) ludziesportu.pl --> www.ludziesportu.pl

4) ludziesportu.pl/cokolwiek --> www.ludziesportu.pl/cokolwiek


Celem jest oczywiście uniknięcie powielania stron. Szukałem długo odpowiedzi na mój problem, ale nie znalazłem - przepraszam, jeśli się powielam. Problemem jest to, że liczba poddomen w serwisie jest nieograniczona i ich nazwa nie jest znana (wszystkie rozwiązania, jakie znalazłem dotyczą konkretnie wymienionych poddomen).

W tej chwili działa mi wszystko oprócz 2). Tzn. w pozostałych przypadkach wszystko elegancko przekierowywuje, ale w przypadku wpisania podstrony w poddomenie z www na początku, www nie zostaje usunięte.

Mój plik .htaccess wygląda tak:

Kod
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST}    ^ludziesportu.pl$
RewriteRule ^(.*)$        http://www.ludziesportu.pl/$1  [L,R=301]

RewriteCond %{HTTP_HOST}        ^www.([^\.]+).ludziesportu.pl$
RewriteRule ^$            http://%1.ludziesportu.pl/$1  [L,R=301]


RewriteCond %{HTTP_HOST}    !(^www.ludziesportu.pl$)
RewriteRule            pozostałe reguły


Pierwszy akapit standard. drugi radzi sobie z domeną główną, czwarty jest nieistotny, problem jest w trzecim. Przypuszczam, że kłopot wynika z tego, ze równocześnie pojawia się zmienna %1 oraz $1, ale nie wiem jak to obejść.

Prosiłbym o pomoc, co poprawić. Jeszcze jedna uwaga - poddomeny mogą zawierać znaki [a-z], [0-9], [-] oraz [_]. czyli litery, cyfry, myślnik, podkreślenie. Kropka odpada (nie ma poddomen w poddomenach).

Serwer NetArt - Wildcard chyba niedostępny (poza tym nie wiem z czym go się je).

Chciałbym, żeby .htaccess załatwiał sprawę, jeśli nie, to spróbuję zczytać string w php i ewentualnie tam zrobić przekierowanie Header(Location: utnij www); ale wydłuży to ładowanie strony.

Jeśli ktoś zauważyłby także, że pozostały kod jest nieelegancki, lub mógłby być bardziej optymalny, to też będę zobowiązany za uwagę.

Z góry dziękuję za pomoc.

Pozdrawiam, Bartek