Autor Zpráva
Juandev
Profil
Není mi jasné, čím (nebo jakou částí mod_rewrite) je docíleno, že alias určité domény pozná, který má zobrazit adresář? Předpokládám, že informace je ukrytá v následujícím kódu. Také předpokládám, že to funguje jen tehdy když neco v /domains/neco = name.cz

RewriteEngine On
 
 # cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]
 
 # subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]
 
 # aliasy - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]
 
 # subdomeny - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
Davex
Profil
Pro domény je to zajištěno tímto:

# vezme se celé jméno serveru (ze začátku se zahodí www.) a předá se do proměnné %2
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
# je v adresáři domains/ podadresář se jménem z proměnné %2?
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
# pokud ano, tak se adresa na něj přepíše
RewriteRule (.*) domains/%2/$1 [DPI]

Juandev:
Také předpokládám, že to funguje jen tehdy když neco v /domains/neco = name.cz
První pravidlo přesouvá různé domény do podadresáře domains/:

example.com -> domains/example.com/
www.example.com -> domains/example.com/
subdomena.example.com -> domains/subdomena.example.com

Druhé pravidlo přesouvá subdomény do podadresáře subdom/:

subdomena.example.com -> subdom/subdomena/
www.subdomena.example.com -> subdom/subdomena/
jina.example.com -> subdom/jina/
Juandev
Profil
Davex:
Jo tak díky. Musím konstatovat, že je to jak Mendlovi zákony - to znamená, že věřím že to funguje a v tomdle případě jsem i rád, že to funguje. To mi k životu stačí.

Teď vidím, že jsem si tam vložil jeden zbytečný mezikrok a sice, že jsem alias přesměroval na adresář. Což se tady samo děje díky výše uvedenému pravidlu

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0