Ü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.
- 3136 megtekintés
Hozzászólások
[TPL]?
BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)
- A hozzászóláshoz be kell jelentkezni
Kicsit lehetne bővebben? :)
- A hozzászóláshoz be kell jelentkezni
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)
- A hozzászóláshoz be kell jelentkezni
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.")
- A hozzászóláshoz be kell jelentkezni
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/
- A hozzászóláshoz be kell jelentkezni
De az R=301 miatt ez is http átirányítást csinál, nem? Itt meg ha jól értem a cél, hogy ne az legyen, hanem a szerver "belül" intézze el magának.
BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)
- A hozzászóláshoz be kell jelentkezni