Apache mod_rewrite wird nicht ordnungsgemäß aufgelöst

Apache mod_rewrite wird nicht ordnungsgemäß aufgelöst

Ich habe einen Apache-Server (Port 80), der als Reverse-Proxy des lokalen Webservers (Port 82) und mod_rewrite ohne .htaccess-Dateien einwandfrei läuft.

Ich kann OK navigieren zuhttp://localhost/CONTACT.PRO, es zeigt mir die Website auf dem lokalen Webserver unterhttp://localhost:82/cgi-vel/web/CONTACT.PRO

Das Problem besteht darin, dass ich versuche, benutzerfreundliche URLs mit mod_rewrite zu erstellen. Dabei wird mir ein Fehler vom lokalen Webserver angezeigt (kein Apache-Fehler). Ich gehe also davon aus, dass ich nicht die richtige URL an den lokalen Webserver (Port 82) sende.

Können Sie mir bitte helfen, herauszufinden, was passiert?

Im Apache-Ordner habe ich nur die Haupt-/Original-httpd.conf mit aktiviertem „LoadModule rewrite_module modules/mod_rewrite.so“ und einschließlich „conf/extra/ABC.conf“, wo ich meine Konfiguration abgelegt habe:

NameVirtualHost *
ExtendedStatus On

<virtualHost *>

ServerName www.ABC.com
ServerAlias 192.168.1.250
ServerAlias localhost
ServerAdmin [email protected]
DirectoryIndex index.htm
ProxyPass /cgi-vel/web/  http://localhost:82/cgi-vel/web/ 
keepalive=on  
ProxyPass /  http://localhost:82/cgi-vel/web/ keepalive=on  
ProxyPassReverse /  http://localhost:82/cgi-vel/web/ keepalive=on 
ProxyPreserveHost On
ErrorLog "logs/test_web_error.log"
CustomLog "logs/test_web-access.log" combined 

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^contact$ /CONTACTAR.PRO?W-IDIOMA=EN [P]
RewriteRule ^item$   /ITEM.PRO
RewriteRule ^special /SALE.PRO?_sale=109

</virtualHost>  

Vielen Dank

Antwort1

Soweit ich weiß, wird ProxyPass vor RewriteEngine ausgewertet, sodass RewriteEngine Ihre URL nie sieht. Sehen Sie sich das anhttps://stackoverflow.com/questions/9003358/apache-rewrite-then-proxy-pass

Sie müssen RewriteEngine anweisen, die URL an den URL-Handler zurückzugeben, indem Sie [PT] hinzufügen.

verwandte Informationen