chciałem zrobić obsługę subdomen dla domeny. układ wygląda tak, na stronie domena jest strona główna, na subdomenach powinny być strony użytkowników. Strony użytkowników są w katalogu subdomains/nazwaDomeny
Czyli przykładowo
domena.pl -> katalog główny
grzemach.domena.pl -> katalog główny/subdomains/grzemach/
user2.domena.pl -> katalog główny/subdomains/user2/
itd.
To w sumie jest proste... jednak.
W dla każdego z nich wymagane jest kilka dodatkowych przekierowań, przykładowo
admin(*.) -> admin.php&url=$1
obrazek(*.) -> image.php&url=$1
przy czym każde takie przekierowanie działa... wysiadłem jednak w momencie gdy miałem kolejny pliczek zaczytać i zamiast z katalogu użytkownika czyta mi go z katalogu głównej (plik znajduje się w template/admin/notLogedIn/ajax.php - url: http://grzemach.domena.com/template/admin/...gedIn/ajax.php)
Kod
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^domena.com
RewriteRule (.*) http://www.domena.com/$1 [R=301,L]
# main page
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteRule ^admin(.*) admin.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteRule ^image(.*) image.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteRule ^file(.*) file.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteRule ^modules(.*) system/modules/updates/index.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php?link=$1 [L,QSA]
#subpages
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteRule ^admin(.*) subdomains/%2/admin.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteRule ^image(.*) subdomains/%2/image.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteRule ^file(.*) subdomains/%2/file.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteRule ^modules(.*) subdomains/%2/system/modules/updates/image.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/subdomains/%2/ -d
RewriteRule ^(.*) subdomains/%2/index.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteCond %{DOCUMENT_ROOT}/subdomains/%2/ !-d
RewriteRule (.*) http://www.domena.com/ [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com$ [NC]
RewriteRule ^$ subdomains/%2/index.php?link=$1 [L,QSA]
RewriteBase /
RewriteCond %{HTTP_HOST} ^domena.com
RewriteRule (.*) http://www.domena.com/$1 [R=301,L]
# main page
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteRule ^admin(.*) admin.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteRule ^image(.*) image.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteRule ^file(.*) file.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteRule ^modules(.*) system/modules/updates/index.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domena.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php?link=$1 [L,QSA]
#subpages
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteRule ^admin(.*) subdomains/%2/admin.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteRule ^image(.*) subdomains/%2/image.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteRule ^file(.*) subdomains/%2/file.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteRule ^modules(.*) subdomains/%2/system/modules/updates/image.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/subdomains/%2/ -d
RewriteRule ^(.*) subdomains/%2/index.php?link=$1 [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com [NC]
RewriteCond %{DOCUMENT_ROOT}/subdomains/%2/ !-d
RewriteRule (.*) http://www.domena.com/ [L,QSA]
RewriteCond %{HTTP_HOST} !www.domena.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domena.com$ [NC]
RewriteRule ^$ subdomains/%2/index.php?link=$1 [L,QSA]
dodanie
Kod
RewriteCond %{HTTP_HOST} !www.domain.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteCond %{DOCUMENT_ROOT}/subdomains/%2/$1 -f
RewriteRule ^(.*) subdomains/%2/$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteCond %{DOCUMENT_ROOT}/subdomains/%2/$1 -f
RewriteRule ^(.*) subdomains/%2/$1 [L,QSA]
Po
Kod
RewriteRule ^modules(.*) subdomains/%2/system/modules/updates/image.php?link=$1 [L,QSA]
Załatwiło sprawę.
Jeśli widzicie jakieś błędy, lub jakiś sposób aby uprościć (zwiększyć niezawodność) proszę o informację. htaccess nie jest moją mocną stroną.