У меня есть сервер Apache (80 порт), работающий нормально как обратный прокси локального веб-сервера (82 порт) и mod_rewrite без каких-либо файлов .htaccess.
Я могу нормально перейти по адресу http://localhost/CONTACT.PRO, он показывает мне сайт, расположенный на локальном веб-сервере по адресу http://localhost:82/cgi-vel/web/CONTACT.PRO
Проблема в том, что при попытке создать дружественные URL с помощью mod_rewrite, он показывает мне ошибку локального веб-сервера (не ошибку apache), поэтому я предполагаю, что я не отправляю правильный URL на локальный веб-сервер (82 порт)
Не могли бы вы помочь мне выяснить, что происходит?
В папке Apache у меня есть только основной / оригинальный httpd.conf с включением "LoadModule rewrite_module modules/mod_rewrite.so" и включая "conf/extra/ABC.conf", куда я поместил свой конфиг:
NameVirtualHost *
ExtendedStatus On
<virtualHost *>
ServerName www.ABC.com
ServerAlias 192.168.1.250
ServerAlias localhost
ServerAdmin webmaster@ABC.com
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>
Большое спасибо
Насколько я могу судить, ProxyPass оценивается до RewriteEngine, поэтому RewriteEngine никогда не видит ваш URL. Взгляните на https://stackoverflow.com/questions/9003358/apache-rewrite-then-proxy-pass
Вы должны указать RewriteEngine передать URL-адрес обратно обработчику URL-адресов, добавив [PT]