网站位于http://www.siteone.com 我想将网址重写为http://www.anothersite.com/siteone或子网http://siteone.anothersite.com。
该网站仅在http://www.siteone.com托管,不会将任何文件移动或复制到anothersite.com。
是否可以使用.htaccess执行此操作,还是有其他方法可以执行此操作?
编辑(以下是我在本地主机中的htaccess中所做的,它似乎不起作用)。不确定我做错了什么。我不想在现阶段弄乱现场。
RewriteCond %{HTTP_HOST} /localhost/mysite [NC]
RewriteRule ^(.*)$ http://www.anothersite.com/siteone/$1 [L,P]
ProxyPassReverse /localhost/mysite http://www.anothersite.com/siteone/
答案 0 :(得分:0)
只要您加载了 mod_proxy ,就可以在重写规则中使用P
标记来反转代理请求。您可以在htaccess文件中执行此操作:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?siteone.com$ [NC]
RewriteRule ^(.*)$ http://www.anothersite.com/siteone/$1 [L,P]
这样,当您访问http://siteone.com/some/path/
时,请求将被反向代理到http://www.anothersite.com/siteone/some/path/
,并且该请求中的内容将被发送到原始请求。此浏览器中的网址仍为http://siteone.com/some/path/
。
为了处理重定向等内容,您需要设置ProxyPassReverse以便位置标头获取属性重写:
ProxyPassReverse / http://www.anothersite.com/siteone/
如果ProxyPassReverseCookieDomain
的网站想要设置Cookie,请参阅ProxyPassReverseCookiePath
和www.anothersite.com
。
注意:虽然ProxyPass
指令只能用于vhost和服务器配置,但ProxyPassReverse
指令实际上可以与mod_rewrite结合使用在htaccess文件中。