Apache mod_rewrite가 해결되지 않습니다.

Apache mod_rewrite가 해결되지 않습니다.

로컬 웹 서버(82 포트)의 역방향 프록시로 실행되는 Apache 서버(80 포트)와 .htaccess 파일 없이 mod_rewrite가 있습니다.

다음으로 이동할 수 있습니다.http://localhost/CONTACT.PRO, 로컬 웹 서버에 있는 웹사이트가 표시됩니다.http://localhost:82/cgi-vel/web/CONTACT.PRO

문제는 mod_rewrite를 사용하여 친숙한 URL을 생성하려고 시도하는 것입니다. 로컬 웹 서버에서 오류가 표시되므로(아파치 오류 아님) 로컬 웹 서버(82 포트)에 올바른 URL을 보내지 않는 것 같습니다.

무슨 일이 일어나는지 알아낼 수 있도록 도와주실 수 있나요?

Apache 폴더에는 "LoadModule rewrite_module module/mod_rewrite.so"를 활성화하고 구성을 넣은 "conf/extra/ABC.conf"를 포함하는 기본/원본 httpd.conf만 있습니다.

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>  

매우 감사합니다

답변1

내가 알 수 있는 한 ProxyPass는 RewriteEngine보다 먼저 평가되므로 RewriteEngine은 URL을 볼 수 없습니다. 보세요https://stackoverflow.com/questions/9003358/apache-rewrite-then-proxy-pass

[PT]를 추가하여 URL을 URL 핸들러에 다시 전달하도록 RewriteEngine에 지시해야 합니다.

관련 정보