2010-09-14 21 views
6

Próbuję zrobić niewidoczny (przezroczysty?) Przepisać przez .htaccess i flaga proxy. Działa z flagą [R], ale nie z flagą [P], ponieważ po prostu daje błąd 500. Te dwie domeny znajdują się na oddzielnych serwerach, a moduł mod_proxy jest włączony. Czy mój .htaccess jest poprawny?.htaccess przepisywanie z flagą [P] proxy

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} =one.com 
RewriteRule ^(.*)$   http://two.com/$1 [P] 
+0

Czy możesz sprawdzić dziennik błędów na serwerze, na którym pojawia się błąd 500, aby zobaczyć, jaki był konkretny błąd? –

+0

To jest błąd, który otrzymuję: ***. IP. ***. *** - - [14/Sep/2010: 19: 33: 11 +0200] "GET/149c9fad24f457143dcb HTTP/1.1" 500 433 "- "" Mozilla/5,0 (Macintosh; U; Intel Mac OS X 10_6_4; fr-fr) AppleWebKit/533.18.1 (KHTML, jak Gecko) Wersja/5.0.2 Safari/533.18.5 " – Sinklar

+0

To z logu dostępu, powinien istnieć oddzielny dziennik błędów, który wyjaśnia, dlaczego Apache wygenerował 500 odpowiedzi. –

Odpowiedz

8

Jeśli mod_proxy został skompilowany jako wspólnego modułu, wymaga jawnie załadować odpowiednie submodules też. Możliwe, że na serwerze mod_proxy_http nie jest włączony, co prowadzi do wewnętrznego błędu serwera, gdy mod_proxy próbuje obsłużyć żądanie przekazane mu przez mod_rewrite.

mod_proxy sam jest włączony, jak powiedziałeś i prawdopodobnie działa, ponieważ jeśli nie masz go włączonego, użycie flagi P spowoduje wygenerowanie 404 odpowiedzi. Trudno o tym wiedzieć, ale bez protokołu błędów, więc trzeba znaleźć kogoś z dostępem do niego, aby zobaczyć, co się dzieje, aby pomóc rozwiązać problem.

+2

dzięki za notatkę o 404 - nie mogłem się domyślić, dlaczego dostałem to! –