2010-09-14 7 views
6

J'essaye de faire une réécriture invisible (transparente?) Via .htaccess et le drapeau proxy. Cela fonctionne avec le drapeau [R] mais pas avec le drapeau [P] parce qu'il donne juste une erreur 500. Les deux domaines sont sur des serveurs distincts et le module mod_proxy est activé. Est-ce que mon .htaccess est correct?.htaccess réécriture avec le drapeau proxy [P]

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

Pouvez-vous vérifier le journal des erreurs sur le serveur sur lequel vous obtenez l'erreur 500 pour voir quelle était l'erreur spécifique? –

+0

C'est l'erreur que je reçois: ***. 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, comme Gecko) Version/5.0.2 Safari/533.18.5 " – Sinklar

+0

Cela provient du journal d'accès, Il devrait y avoir un journal d'erreur distinct qui explique pourquoi Apache a généré une réponse 500. –

Répondre

8

Si mod_proxy a été compilé comme module partagé, il faut que vous chargez explicitement les sous-modules pertinents aussi. Il est possible que sur votre serveur mod_proxy_http n'est pas activé, ce qui conduit à une erreur interne du serveur lorsque mod_proxy essaie de gérer la demande passée par mod_rewrite.

mod_proxy lui-même est activé comme vous l'avez dit et fonctionne probablement, puisque si vous ne l'avez pas activé, l'utilisation de l'indicateur P génèrera simplement une réponse 404. Il est difficile de savoir avec certitude, mais sans le journal des erreurs, vous avez donc besoin de trouver quelqu'un qui y a accès pour voir ce qui se passe pour vous aider à résoudre le problème.

+2

merci pour la note sur la 404 - je ne pouvais pas comprendre pourquoi je l'obtiens! –