apache mod_rewrite が解決されない

apache mod_rewrite が解決されない

ローカル Web サーバー (82 ポート) のリバース プロキシとして正常に動作している Apache サーバー (80 ポート) と、.htaccess ファイルなしの mod_rewrite があります。

OKに移動できますhttp://localhost/CONTACT.PRO、ローカルウェブサーバーにあるウェブサイトが表示されます。http://localhost:82/cgi-vel/web/CONTACT.PRO

問題は、mod_rewrite を使用してフレンドリー URL を作成しようとしていることです。ローカル Web サーバーからのエラー (Apache エラーではない) が表示されるため、ローカル Web サーバー (82 ポート) に正しい URL を送信していないと思われます。

何が起こっているのか理解するのを手伝ってもらえませんか?

Apache フォルダーには、"LoadModule rewrite_module modules/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

RewriteEngineにURLをURLハンドラーに返すように指示するには、[PT]を追加する必要があります。

関連情報