Přesměrování www požadavků na jinou IP

q

Přesměrování www požadavků na jinou IP
« kdy: 28. 05. 2012, 17:18:47 »
Potrebuji presmerovat vsechny pozadavky na www (TCP 80) jdouci z eth1 na IP lokalniho serveru. Pouzil jsem:
Kód: [Vybrat]
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:80a funguje to.
Kdyz jdu napr. na http://www.root.cz/ tak je to OK a zobrazi se stranka z lokalniho serveru. Kdyz ale zadam napr. http://www.root.cz/texty/zaklady-linuxu/ tak mi lokalni web server vrati 404 not found.
Chapu, ze dana cesta neexistuje. Da se nejak presmerovat vse do "rootu" web serveru? To uz asi pomoci iptables nevyresim, neslo by to pomoci mod_rewrite?
« Poslední změna: 28. 05. 2012, 17:42:06 od Petr Krčmář »


McFly

  • *****
  • 588
    • Zobrazit profil
    • E-mail
Re:TCP 80: presmerovani vsech pozadavku na danou IP
« Odpověď #1 kdy: 28. 05. 2012, 17:33:09 »
Ano, pravidlo s mod_rewrite na lokálním webovém serveru problém vyřeší.

q

Re:Přesměrování www požadavků na jinou IP
« Odpověď #2 kdy: 29. 05. 2012, 14:25:10 »
Muzete mi nekdo pomoct s htaccess?

Vytvoril jsem v apachi virtualhost:
Kód: [Vybrat]
# cat /etc/apache2/sites-enabled/abc
NameVirtualHost 192.168.255.1
<VirtualHost 192.168.255.1>
    ServerName abc
    DocumentRoot /var/www/abc
    ErrorLog /var/log/apache2/error_abc
    LogLevel warn
    CustomLog /var/log/apache2/access_abc combined
    Options Indexes FollowSymLinks MultiViews
    RewriteEngine On   
    <Directory /var/www/abc>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

Na firewallu jsem nastavil presmerovani:
Kód: [Vybrat]
iptables -t nat -A PREROUTING -i wifi0 -p tcp --dport 80 -j DNAT --to 192.168.255.1:80
iptables -A OUTPUT -o wifi0 -j ACCEPT

Ale porad mi nejde to presmerovani v htaccess, prohlizec vzdy zobrazi chybu.
Muj htaccess:
Kód: [Vybrat]
# cat /var/www/abc/.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ! 192.168.255.1
RewriteRule (.*) / [R]

Kde mam chybu?

Sten

Re:Přesměrování www požadavků na jinou IP
« Odpověď #3 kdy: 29. 05. 2012, 15:08:39 »
Těžko říct, nepíšete, jakou chybu to zobrazí. Pokud 404, bude asi problém s tím NameVirtualHost. Pokud 500, tak je asi špatně ten RewriteRule, protože skončí v nekonečné smyčce.

kosta

Re:Přesměrování www požadavků na jinou IP
« Odpověď #4 kdy: 29. 05. 2012, 18:17:08 »
pouzivam v jedny aplikaci tohle

ErrorDocument 404 /index.php
RewriteEngine on
RewriteRule (^index\.php$|\.css$|\.gif$|\.jpg$|\.png$) - [L,NC]
RewriteRule (.*) /index.php?odkaz=%{HTTP_HOST}/$1 [R=307,QSA,L]

ukladam puvodni adresu do odkazu, protoze se pak s ni pracuje


Sten

Re:Přesměrování www požadavků na jinou IP
« Odpověď #5 kdy: 29. 05. 2012, 18:28:49 »
Jinak můžu přidat, co jsem používal dříve, než jsem použil svůj vlastní web server:

Kód: [Vybrat]
DocumentRoot index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ / [L]

Původní adresa zůstane v HTTP_HOST a REQUEST_URI.

Sten

Re:Přesměrování www požadavků na jinou IP
« Odpověď #6 kdy: 29. 05. 2012, 18:30:33 »
Jinak můžu přidat, co jsem používal dříve, než jsem použil svůj vlastní web server:

Kód: [Vybrat]
DocumentRoot index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ / [L]

Původní adresa zůstane v HTTP_HOST a REQUEST_URI.

Sakra, jsem to spletl:
Kód: [Vybrat]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /index.php [L]

ja

Re:Přesměrování www požadavků na jinou IP
« Odpověď #7 kdy: 29. 05. 2012, 21:33:54 »
vykasli sa na mod_rewrite (v tych konfigurakoch sa nevyzna ani diva svina).

 proste si nakopiruj celu stranku root na svoj komp.