如何解决带有代理标志的Apache重写规则不适用于MediaWiki服务
|| 我有一个本地Apache httpd,它托管一个侦听端口3300的mediawiki服务。该服务可以通过以下方式在我的LAN中访问http://mylan:3300/wiki/
我将我的互联网路由器配置为向mylan:3300添加端口转发条目。然后,我可以通过以下方式访问Wiki:
http://<dynamic domain>:3300/wiki/
接下来,我有一个全球服务的网站。 Web服务器也是apache httpd。我在.htaccess中添加了重写规则:
RewriteEngine On
RewriteRule ^/?wiki/?$ http://<dynamic domain>:3300/wiki/ [P]
我希望通过代理方法但使用全局Internet域名称空间访问在本地LAN上托管的Wiki:
http://<internet domain>/wiki/
从Internet浏览器执行上述URL后,我可以看到Wiki内容。但是,地址栏中显示的URL更改为
http://<dynamic domain>:3300/wiki/index.php/Main_Page
为了测试代理重写规则的工作,我尝试将重写规则更改为:
RewriteRule ^/?wiki/?$ http://www.google.com/search?q=test [P]
打开URL:
http:/// wiki /
带我到Google搜索页面,但URL仍为http:/// wiki /。
任何想法为何重写规则
RewriteRule ^/?wiki/?$ http://<dynamic domain>:3300/wiki/ [P]
使浏览器显示新的URL地址而不是Internet域名空间:
http://<internet domain>/wiki/
一个很好的例子是:
RewriteRule ^/?wiki/(.*)$ http://en.wikipedia.org/wiki/$1 [P]
如果我们访问URL:
http://<domain>/wiki/Country
该网址将始终被重写并显示为
http://en.wikipedia.org/wiki/Country
相反,我希望它显示为
http://<domain>/wiki/Country
但内容来自http://en.wikipedia.org/wiki/国家/地区
解决方法
可能是包含完整链接的重定向。要重写它们,请添加以下内容:
ProxyPassReverse /wiki/ http://<dynamic domain>:3300/wiki/
我还注意到在内容处理部分的Apache在线文档中的URL重写指南-高级主题的“动态镜像”小节中有以下示例:
RewriteEngine on
RewriteBase /~quux/
RewriteRule ^hotsheet/(.*)$ http://www.tstimpreso.com/hotsheet/$1 [P]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。