dynamické subdomény (mod rewrite)

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
NEONET
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 16. črc 2007
Bydliště: Ostrava - Hrabůvka

dynamické subdomény (mod rewrite)

Příspěvek od NEONET »

Zdravim, mam tu problem, potrebuju udelat dynamicke subdomeny a to tak, ze kdyz napisu treba ahoj.domena.cz tak mod rewrite zkontroluje existenci slozky ahoj ve var/www/test a kdyz tam je tak zobrazi jeji obsah...

dale kdyz dam jenom domena.cz a nebo www.domena.cz tak aby to koncilo v pevne dane slozce... vice viz SPATNY script, pomuze nekdo prosim odhalit chyby a dokoncit to?

Kód: Vybrat vše

<virtualhost *:80>

ServerName *.domena.cz
ServerAlias www.*.domena.cz
RewriteEngine on

RewriteCond %{HTTP_HOST} !^www.* [NC]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domena\.cz
RewriteCond /var/www/test/$1 -d
RewriteRule ^(.*) /var/www/test/%1/$1 [L]

RewriteCond %{HTTP_HOST} domena.cz [NC,OR]
RewriteCond %{HTTP_HOST} www.domena.cz [NC]
RewriteRule ^(.*) /var/www/test/hlavni [L]

CustomLog /var/log/apache2/anycust.log combined
ErrorLog /var/log/apache2/anyerror.log

</virtualhost>
MB: Gigabyte P35-DS3R *|*CPU: Intel C2D E6850 @ 3.6Ghz *|*RAM: 4GB @ 800Mhz CL4 *|*GPU:Radeon HD3850@730/2048MHz *|* Windows 8 x64
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: dynamické subdomény (mod rewrite)

Příspěvek od OndraSter »

Já to řeším jinak, a to pomocí mod_vhost_alias.

Mám pevně danou strukturu hledání rootu webu:
/disk2/http/<domena>/<subdomena>/

První a jediný problém byl, když není zadáno www. a tudíž to nemá kde vyhledat subdoménu. To jsem vyřešil jednoduchým trikem: pokud mod_rewrite zjistí, že nejsou v adrese alespoň dvě tečky, tak přesměruje z http://neco.cz na http://www.neco.cz a tudíž subdoména je www a vše funguje. Sice to není asi nejlepší řešení, ale je 100% funkční.

Co ty na to?
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
NEONET
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 16. črc 2007
Bydliště: Ostrava - Hrabůvka

Re: dynamické subdomény (mod rewrite)

Příspěvek od NEONET »

libi se mi to, ale s mod_vhost_alias sem si hral a na nic jsem eprisel :(
MB: Gigabyte P35-DS3R *|*CPU: Intel C2D E6850 @ 3.6Ghz *|*RAM: 4GB @ 800Mhz CL4 *|*GPU:Radeon HD3850@730/2048MHz *|* Windows 8 x64
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: dynamické subdomény (mod rewrite)

Příspěvek od OndraSter »

Jestli by ti to vyhovovalo, tak se to pokusím popsat, ač se to popisuje blbě a lepší to je pochopit:

Kód: Vybrat vše

UseCanonicalName        Off
VirtualDocumentRoot     /disk2/http/%2+/%1
----- toto nastaví správně, kde to má hledat
Include /etc/apache2/domains.d/*.conf
----- vysvětlím později

<Directory "/disk2/http/*">
        Order deny,allow
        allow from all
        Options -Indexes
        IndexOptions FancyIndexing
        php_admin_value open_basedir /disk2/http/:/tmp
</Directory>
---- vypnu indexování složek a pro bezpečnost (pokud by došlo k problému) tak nepustím ani za nic skript výš jak /disk2/http/ (další info dále)


RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^\./]+\.[^\./]+$
RewriteRule ^/(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
------- a tento kousek přesměruje, pokud není specifikovaná subdoména, na www.
A teď přichází další část:
Jelikož nejde nastavit open_basedir automaticky, jako v případě virtual document root, musí se na to ručně. Proto tam je ten řádek

Kód: Vybrat vše

Include /etc/apache2/domains.d/*.conf
V /etc/apache2/domains.d mám soubory ve formátu:
<domena>.<tld>.conf - pro každou doménu vlastní, můžu tudíž každému klientovi povolovat různé věci a naopak jiné zakazovat.
Ukázkový příklad jednoho .conf:

Kód: Vybrat vše

<Directory "/disk2/http/ondraster.cz/*">
php_admin_value open_basedir /disk2/http/ondraster.cz:/tmp
</Directory>
Pro doménu ondraster.cz mám nastavený open_basedir jen po root vlastního webu a /tmp (pro upload souborů)

V případě nejasností ( :roll: ) se klidně ptej.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
NEONET
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 16. črc 2007
Bydliště: Ostrava - Hrabůvka

Re: dynamické subdomény (mod rewrite)

Příspěvek od NEONET »

tak jsem zkousel tvou metodu, ale pokazde mi to konci na 404... :(
MB: Gigabyte P35-DS3R *|*CPU: Intel C2D E6850 @ 3.6Ghz *|*RAM: 4GB @ 800Mhz CL4 *|*GPU:Radeon HD3850@730/2048MHz *|* Windows 8 x64
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: dynamické subdomény (mod rewrite)

Příspěvek od OndraSter »

A máš správně nastavené cesty?
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
NEONET
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 16. črc 2007
Bydliště: Ostrava - Hrabůvka

Re: dynamické subdomény (mod rewrite)

Příspěvek od NEONET »

sesty jsem si nastavil svoje a ano, spravne, az na to tmp tm si nejsem jist ale na upload ted kaslu
MB: Gigabyte P35-DS3R *|*CPU: Intel C2D E6850 @ 3.6Ghz *|*RAM: 4GB @ 800Mhz CL4 *|*GPU:Radeon HD3850@730/2048MHz *|* Windows 8 x64
NEONET
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 16. črc 2007
Bydliště: Ostrava - Hrabůvka

Re: dynamické subdomény (mod rewrite)

Příspěvek od NEONET »

uz jsem to nejak rozchodil, ale potrebuju jenom kontrolu


v httpd.conf mam toto

Kód: Vybrat vše

<VirtualHost *:80>

UseCanonicalName Off
VirtualDocumentRoot /var/www/%2+/%1

Include /etc/apache2/domains.d/*.conf

<Directory "/var/www/*">
        Order deny,allow
        allow from all
        Options -Indexes
        IndexOptions FancyIndexing
        php_admin_value open_basedir /var/www/:/var/tmp
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
	AllowOverride None
	Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
	Order allow,deny
	Allow from all
</Directory>

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

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

</VirtualHost>

a pak v domains.d sem vytvoril neonets.eu.conf a do ni narval toto

Kód: Vybrat vše

<Directory "/var/www/neonets.eu/*">
php_admin_value open_basedir /var/www/neonets.eu:/var/tmp
</Directory>
a pak jenom vytvoril slozky jak jsou...

akorat pouzivam i porad jeste byvale zapisy pro kazdou domenu zvlast, treba kvuli phpsysinfu a jine domene ktera nebude mit sub... funguje to, ale pls ondro kontrola :D
MB: Gigabyte P35-DS3R *|*CPU: Intel C2D E6850 @ 3.6Ghz *|*RAM: 4GB @ 800Mhz CL4 *|*GPU:Radeon HD3850@730/2048MHz *|* Windows 8 x64
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: dynamické subdomény (mod rewrite)

Příspěvek od OndraSter »

nelibi si mi tam to, jak mas prazdne "php_admin_value" - nechapu toho smysl, normalne to nastavuje promenne php, napr zakazuje funkce atd (ja pouzivam suhosin patch).
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
NEONET
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 16. črc 2007
Bydliště: Ostrava - Hrabůvka

Re: dynamické subdomény (mod rewrite)

Příspěvek od NEONET »

myslis u cgi a doc?
MB: Gigabyte P35-DS3R *|*CPU: Intel C2D E6850 @ 3.6Ghz *|*RAM: 4GB @ 800Mhz CL4 *|*GPU:Radeon HD3850@730/2048MHz *|* Windows 8 x64
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: dynamické subdomény (mod rewrite)

Příspěvek od OndraSter »

Je pardon, mobil (mobilní IE) mi to nějak špatně zalomil a schoval mi cokoliv za tím, omlouvám se. Na PC to už vidím vše. :oops:


Pokud ti to vyhovuje a funguje, tak je to OK.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
Odpovědět

Zpět na „Programování a web“