我正在尝试在Apache中配置url重定向。我尝试了一些方法,没有任何作用。有人能告诉我解决方案,因为它似乎并不太难。
我将重定向请求:
https://myhost/configuration/jmx-console
为:
http://myanohterhost/jmx-console
这是https to http re-direct。
有人能指出我正确的方向吗?
非常感谢!
答案 0 :(得分:7)
您可以使用RedirectMatch
指令强制Apache将用户发送到其他地方:
RedirectMatch 301 ^(.*)$ http://www.anotherserver.com$1
请参阅以下内容:
http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch
http://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx
答案 1 :(得分:2)
在当前服务器(或虚拟主机)`myhost'的配置中,执行此操作的常规方法如下:
Redirect /configuration/jmx-console http://myanohterhost/jmx-console
编辑: 根据您的评论,看起来您可以使用以下技术之一来实现:
只需将远程服务器的网址映射到本地网址:
ProxyPass /configuration/jmx-console http://myanohterhost/jmx-console
ProxyPassReverse /configuration/jmx-console http://myanohterhost/jmx-console
RewriteRule ^configuration/jmx-console(.*)$ http://myanohterhost/jmx-console$1 [P]
使用反向代理可能会有一些注意事项,我建议您仔细阅读http://httpd.apache.org/docs/2.2/en/mod/mod_proxy.html以查看使用反向代理时可用的各种选项。
答案 2 :(得分:1)
参考问题标题如何配置Apache2以重定向URL 我建议使用简单的解决方案,对我来说很合适(使用来自RedirectPermanent
的{{1}})。
首先,我们检查我们的域是否具有正确的DNS条目,例如mod_alias
类型条目:
A
和name somefancydomain.com
TTL 600
type A
value 10.100.10.100
条目:
CNAME
然后我们使用IP 10.100.10.100访问ubuntu webserver并配置新的虚拟主机:
name www.somefancydomain.com
TTL 600
type CNAME
value somefancydomain.com
粘贴配置如下并保存:
cd /etc/apache2/sites-available/
sudo vim redirect.conf
启用新的虚拟主机并重新加载apache:
<VirtualHost *:80>
ServerName somefancydomain.com
ServerAlias www.somefancydomain.com
RedirectPermanent / https://redirectedurl.com/
ServerAdmin admin@redirectedurl.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
最后检查重定向是否有效。
答案 3 :(得分:0)
根据Apache网站,你应该不使用mod_rewrite简单地从http重定向到https(或者另一种方式,这似乎更常见):
http://httpd.apache.org/docs/2.2/rewrite/avoid.html
网站建议将 mod_alias 与重定向和 RedirectMatch 指令结合使用。
答案 4 :(得分:0)
假设您正在主机“ myhost”上执行此操作
1 /触摸/etc/apache2/conf-available/my-redirect.conf
2 /编辑my-redirect.conf并添加
Redirect permanent /configuration/jmx-console http://myanotherhost/jmx-console
3 / a2enconf my-redirect.conf
4 / apache2ctl configtest
5 /这应该显示“语法正确”
6 / systemctl重新启动apache2