[megoldva] apache redirect/rewrite segítségkérés

Üdvözletem!

Apache virtualhost beállításában kérnék segítséget. Van egy fejlesztői gép, ahol debian fut apache2-vel. A hostok a dev könyvtáraiból jönnek létre, VirtualDocumentRoot-al, kivéve pma és még egy-kettő. Viszont most kellene egy kivétel, ami kicsit trükkösebb.Arra lenne szükség, hogy az egyik rendszer (mondjuk "alma") elérhető legyen úgy is, hogy ha speciális néven hívjuk meg, akkor az eredeti url már kap egy paramétert, mintha eleve úgy hívtuk volna meg. Vagyis:

Az eredeti, most is működő url az "alma.kert.bokor.hu". Ha beírom a "alma.kert.bokor.hu/alma-mag"-ot, megkapom a speciális aloldalt. A cél az lenne, hogy ha azt írom be hogy "alma-mag.kert.bokor.hu", akkor úgy működjön, mintha
az "alma.kert.bokor.hu/alma-mag"-ot írtam volna be. Ez igaz legyen aloldalakra, paraméterekre, mindenre. Vagyis ha megkapok egy oldalt a "alma.kert.bokor.hu/alma-mag/lomb?nagy=kicsi"-re, akkor megkapjam a "alma-mag.kert.bokor.hu/lomb?nagy=kicsi"-re is. :)

Remélem, nem fogalmaztam túl bonyolultan. Eddig ezt próbáltam (létrehoztam egy külön site configot ennek az esetnek a lekezelésére):


<VirtualHost *:80>
  ServerName alma-mag.kert.bokor.hu
  RewriteEngine on
  RewriteCond %{HTTP_HOST} alma-mag.kert.bokor.hu
  RewriteRule ^(.*)$ http://alma.kert.bokor.hu/alma-mag$1 [R=301,L]
</VirtualHost>

Nem jött be, szépen "átdob" a "http://alma.kert.bokor.hu/alma-mag"-ra, de én nem ezt szeretném. Ugyenez, ha "Redirect", "RedirectPermanent", "Redirect 301" és társaival próbálkozom: az átirányítás végbemegy, de a régi url marad.

Megoldható ez úgy ahogy szeretném?

Előre is köszönöm.

szerk.:

Megoldódott, bár jóval bonyolultabban mint szerettem volna. Ez lett a vége:


<VirtualHost *:80>
  ServerName alma-mag.kert.bokor.hu

  ProxyRequests Off
  <Proxy *>
      Order deny,allow
      Allow from all
  </Proxy>

  ProxyPass / http://alma.kert.bokor.hu/alma-mag/ 
  ProxyPassReverse / http://alma.kert.bokor.hu/alma-mag/

  SetOutputFilter proxy-html
  ProxyHTMLURLMap  / http://alma.kert.bokor.hu/alma-mag/

  <Location />
      Order allow,deny
      Allow from all
  </Location>
</VirtualHost>

Még akár az is lehet, hogy ez a legrosszabb megoldás, nem tudom, mindenesetre működik.

Hozzászólások

[TPL]?

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

RewriteRule ^(.*)$ http://alma.kert.bokor.hu/alma-mag$1 [PL]

A P miatt belül fogja az átirányítást elintézni, a T-t asszem mégse kell (mime típust is írni kéne neki) az L meg hogy ez legyen az utolsó szabály.

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

Köszönöm, kipróbáltam, de ugyanaz az eredmény, átdob az "http://alma.kert.bokor.hu/alma-mag"-ra. (mod_proxy be van töltve.)

(illetve, ezt írják az apache docsban: "Use of the [P] flag implies [L] - that is, the request is immediately pushed through the proxy, and any following rules will not be considered.")

Első lépésben szerintem a RewriteCond nem kell
a RewriteRule -nek meg igy kellene kinézni:


# apache 2.2
# RewriteLogLevel 3
# apache 2.4
# LogLevel rewrite:trace3
RewrieRule ^/(.*)$ http://alma.kert.bokor.hu/alma-mag/$1 [R=301,L]

----
올드보이
http://molnaristvan.eu/