Apache mod_rewrite无法在不重写url的情况下重定向

Apache mod_rewrite无法在不重写url的情况下重定向,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我正在尝试重定向到另一个服务器应用程序,该应用程序运行在同一个盒子的不同端口上,apache HTTPD作为运行在端口80上的前端服务器。我使用重写引擎和以下语法重定向调用: RewriteRule ^/?products/(.*)$ http://www.example.com:9000/$1 [L] 这非常有效,但url在浏览器中更改为端口9000。每当我将代理的[L]更改为[P]时,浏览器中就会出现404,not found错误 如何修复此问题,使url不会在浏览器中更改,但仍能正常工作

我正在尝试重定向到另一个服务器应用程序,该应用程序运行在同一个盒子的不同端口上,apache HTTPD作为运行在端口80上的前端服务器。我使用重写引擎和以下语法重定向调用:

RewriteRule ^/?products/(.*)$ http://www.example.com:9000/$1 [L]
这非常有效,但url在浏览器中更改为端口9000。每当我将代理的
[L]
更改为
[P]
时,浏览器中就会出现404,not found错误


如何修复此问题,使url不会在浏览器中更改,但仍能正常工作?

您需要确保已加载mod_proxy,否则
p
标志将不起作用


您也可以在vhost配置中将
ProxyPass
指令用作mod_proxy的一部分。

如何加载mod_proxy?@Jason取决于linux发行版或操作系统,但通常您希望在httpd.conf中有这样一行:
LoadModule proxy_modules/mod_proxy。因此
这就是问题所在。在ubuntu服务器上,我能够做到:
a2enmod proxy\uhttp