Witam,
Podczas zabaw z kontrolą zachowań paska adresu natrafiłem na kilka problemów.

1.
Subdomeny.
Katalogi wyglądają tak:
Kod
domena.eu
--- beta
------ tournament
--------- files

Folder 'beta' można osiągnąć subdomeną beta.domena.eu. Oto co się dzieje po wklepaniu adresu:
- domena.eu/beta/ -> adres taki zostaje.
- domena.eu/beta/tournament/ -> beta.domena.eu/tournament/
- domena.eu/beta/tournament/files/ -> adres taki zostaje.
Skąd ten brak konsekwencji?

2.
Ruch z 'www.' przekierowuję przez 301. Problem z wyrażeniem regularnym w .htaccess.

a/ Kod klasy B z no-www.org nie sprawdza się na mojej stronie. Oto .htaccess głównego katalogu:
Kod
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Zachowanie:
- www.domena.eu -> domena.eu/ [OK]
- www.domena.eu/beta/ -> domena.eu/beta/ [OK]
- www.domena.eu/beta/tournament/ -> beta.domena.eu/tournament/ [OK]
- www.domena.eu/beta/tournament/files/ -> adres taki zostaje [ŹLE]
- www.beta.domena.eu -> beta.domena.eu/beta/ [WTF?]
- www.beta.domena.eu/tournament/ -> beta.domena.eu/tournament/ [OK]
- www.beta.domena.eu/tournament/files/ -> adres taki zostaje [ŹLE]
Wniosek: wyrażenie z no-www ssie w przypadku subdomen i muszę pokombinować.

b/ Wprowadziłem więc modyfikacje. Oto mój kod, również nie działa:
Kod
RewriteCond %{http_host} ^www\.(.+)?domena\.eu(.*)?$ [nc] # '(.+)?' jako ew. subdomena
RewriteRule ^(.*)$ http://%1domena.eu/%2 [r=301,nc] # %N jako nawiasy z RewriteCond, tak to działa, prawda?

Zachowanie:
- www.domena.eu -> domena.eu/ [OK]
- www.domena.eu/beta/ -> domena.eu/ [WTF?]
- www.domena.eu/beta/tournament/ -> beta.domena.eu/tournament/ [OK]
- www.domena.eu/beta/tournament/files/ -> adres taki zostaje [ŹLE, TEN SAM PROBLEM]
- www.beta.domena.eu -> beta.domena.eu/ [OK, a tam było źle]
- www.beta.domena.eu/tournament/ -> beta.domena.eu/tournament/ [OK]
- www.beta.domena.eu/tournament/files/ -> adres taki zostaje [ŹLE]

Oprócz tego próbowałem w przeróżny sposób modyfikować te wyrażenia, ale efekt był tylko gorszy. Mój postulat w skrócie to: regułki w mod_rewrite nie powinno w ogóle obchodzić, czy ma do czynienia z subdomeną czy nie oraz czy po '.eu' są jeszcze jakies foldery. Jedyne, co ma zrobić to wywalić 'www.' z początku adresu i nie dotykać reszty. No bo dlaczego www.domena.eu/beta/tournament/ przekierowuje (nie dość, że wywala 'www.' to jeszcze wysyła na subdomenę), ale www.domena.eu/beta/tournament/files/ już nie rusza? Chore! Zakładam, że problem zawiera się w kwestii formułki - żadne sprawy związane z nieprawidłowym ustawieniem serwera, czy coś. Jeśli tylko dostanę jakąś sugestię na temat kodu, pokombinuję, ale obecnie skończyły mi się pomysły.

Pozdrawiam