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
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