Van egy drupal oldalam, amihez van két domainem (domain1.hu, domain2.hu).
A célom a következő lenne, hogy a domain1 menjen a szokásos drupal módon, míg a domain2 használja ugyanazt a drupal motort és adatbázist (site tehát kilőve) és mutasson egy node-ra. Én apache rewrite-re gondoltam alapból, de nagyon nem akar működni se a tesztszerveren, se az élesen. Redirect könnyű lenne, de a domain2-nek meg kéne maradnia a böngésző címsorában.
A megértésben talán segít ez a mapping lista:
- http://domain1.hu -> http://domain1.hu/index.php
- http://domain1.hu/node/10 -> http://domain1.hu/node/10
- http://domain1.hu/alias -> http://domain1.hu/alias (http://domain1.hu/node/10)
- http://domain1.hu/domain2 -> http://domain1.hu/domain2 (http://domain1.hu/node/20)
- http://domain1.hu/domain2/aloldal -> http://domain1.hu/domain2/aloldal (http://domain1.hu/node/30)
- http://domain2.hu -> http://domain2.hu/index.php?q=domain2 vagy http://domain2.hu/index.php?q=node/20
- http://domain2.hu/node/20 -> http://domain2.hu/node/20
- http://domain2.hu/node/40 -> http://domain2.hu/node/40
- http://domain2.hu/aloldal -> http://domain2.hu/aloldal (http://domain2.hu/node/30)
- http://domain2.hu/alias -> 404, de ez annyira nem kritikus
Amivel próbálkoztam:
# domain2-rol, ha ures az uri (DirectoryIndex)!!!
RewriteCond %{HTTP_HOST} ^domain2\.hu$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^/$ index.php?q=node/20 [L,PT]
# domain2-rol, ha van uri
RewriteCond %{HTTP_HOST} ^domain2\.hu$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=domain2/$1 [L,PT]
# domain1 normal mukodes
RewriteCond %{HTTP_HOST} !^domain2\.hu$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
Könnyen lehet, hogy rosszul gondolkozom, és a Rule direktíva nem nullázza a Conditionokat. Ekkor hogy lehet nullázni?
Szerk:
Alapvetően a drupal cache nehezítette meg a a jó megoldás megtalálását, de végül meg lett.
# domain2-rol, ha ures az uri (DirectoryIndex)!!!
RewriteCond %{HTTP_HOST} ^domain2\.hu$ [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ /index.php?q=node/20 [L]
# domain2-rol, ha van uri
RewriteCond %{HTTP_HOST} ^domain2\.hu$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ /index.php?q=domain2/$1 [L]
# domain1 normal mukodes
RewriteCond %{HTTP_HOST} !^domain2\.hu$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ /index.php [L]
- 1330 megtekintés
Hozzászólások
- Mit jelent az, hogy nem működik, mi a hiba?
- Sztem az a PT flag-ek nem kellenek, csak bekavarnak, hacsak nincs valami oka ami ebből a konfigból nem látszik.
- De, a RewriteRule "nullázza" a RewriteCond-okat.
- Ezek per-directory rewrite-ok ugye?
- Mindenképpen érdemes lenne a RewriteLog-ot bekapcsolni 4-es RewriteLogLevel-el és abból szépen látszani fog, hogy mi a baj ha figyelmesen elolvasod, érdemes szűrni egy adott kérésre, hogy átlátható legyen.
♲♻♲
- A hozzászóláshoz be kell jelentkezni
Jogos, a domain1-es dolgok mennek, a domain2-n azok mennek, amik aloldalakra mutatnak, de ha a domain2-re, egyek üresen, az a domain1 tartalmút hozza be, akármit csinálok. A domain2/index.php?q=node/20 kérés az jó tartalmat hoz be. Ahogy néztem a drupal forrását, a $_SERVER['REQUEST_URI'] tartalmát olvasná ki, de ezt nem tudom (legalábbis én) rewrite-vel felülcsapni, de nem tudom biztosan, hogy ez lenne a kulcsa a megoldásnak.
- A hozzászóláshoz be kell jelentkezni