Spring 在Apache中为其他端口重写规则
我的Apache(Tomcat)-Spring服务器在端口8080上运行。我想调用localhost默认端口(80),并希望重定向到端口8080 我启用了mod rewrite,下面的规则可以正常工作Spring 在Apache中为其他端口重写规则,spring,apache,.htaccess,mod-rewrite,url-rewriting,Spring,Apache,.htaccess,Mod Rewrite,Url Rewriting,我的Apache(Tomcat)-Spring服务器在端口8080上运行。我想调用localhost默认端口(80),并希望重定向到端口8080 我启用了mod rewrite,下面的规则可以正常工作 RewriteRule ^orange.html$ apple.html 我从中阅读了apache的重写规则 但是,以下规则不起作用: RewriteEngine On # Turn on the rewriting engine RewriteCond %{SERVER_PORT} !^
RewriteRule ^orange.html$ apple.html
我从中阅读了apache的重写规则
但是,以下规则不起作用:
RewriteEngine On # Turn on the rewriting engine
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*) http://localhost:8080/$1 [L,R]
我的意图是允许跨域支持,而不在SpringController中启用CORS。(这是一条硬规则)
htaccess位于/var/www/html中。
此外,我不希望在端口8080上重定向其他请求,但在本地主机/(我指定的字符串)上的请求除外。您可以在root.htaccess中使用此规则:
RewriteEngine On
RewriteCond %{SERVER_PORT} =80
RewriteRule ^my_specified_string http://localhost:8080%{REQUEST_URI} [NC,L,R]
ProxyPass是这里需要的,而不是重写引擎 下面是
/etc/apache2/sites available
中的000 default.conf
中的配置行
ProxyPass /servlet-name http://localhost:8080/servlet-name
ProxyPassReverse /servlet-name http://localhost:8080/servlet-name
这将/servlet name
上的任何请求改为http://localhost:8080/servlet-名称
可以用各自的servlet名称替换上面的“servlet名称”
更多信息请点击此处:
在这种情况下,“重定向”不是正确的术语。
ProxyPass和ProxyPassReverse指令设置了一个反向代理,因此您没有将浏览器重定向到新的URL,而是在一个端口上接受流量,并通过apache httpd(mod_proxy)将该流量反向代理到目标服务器:port