[英]apache2 reverse proxy configuration
我有一个监听TCP 127.0.0.1:81的应用程序。 我想完成以下重定向:
www.example.com/?requestid=123456 --> http://127.0.0.1:81/?requestid=123456
www.example.com/ANYTHING_ELSE --> MY_IP_THAT_APACHE_LISTENS_ON
我的理解是,如果我不明确重写某些内容,它将遵循/ var / www / html的常规路径。
我的/etc/apache2/sites-enabled/000-default.conf配置:
<VirtualHost *:80>
ServerName example.com
ServerAdmin example@example.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Location />
RewriteEngine On
RewriteRule ^/?requestid(.*)$ http://127.0.0.1:81/$1 [P]
ProxyPassReverse http://127.0.0.1:81/
Order allow,deny
Allow from all
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
为什么它不能正确重写并不断打正常补丁?
Not Found
The requested URL /bullshit was not found on this server.
Apache/2.4.25 (Debian) Server at example.com Port 80
在VirtualHost上下文中,模式将首先与主机名和端口之后,查询字符串(例如“ /app1/index.html”)之前的URL部分匹配。 这是(%解码)URL路径。
如果希望与主机名,端口或查询字符串匹配,请分别使用RewriteCond和%{HTTP_HOST},%{SERVER_PORT}或%{QUERY_STRING}变量。
因此,您将需要以下内容:
RewriteEngine On
RewriteCond %{QUERY_STRING} requestid=(.+)
RewriteRule ^/$ http://127.0.0.1:81/?requestid=%1 [P]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.