RewriteCond更改显示的主机,但不更改服务器

时间:2010-06-09 21:10:13

标签: apache .htaccess mod-rewrite vhosts

输入标题会让我相信这可能因安全问题而无法实现,但无论如何我都会问。我在我的服务器上运行了短代码支持,我们称之为xx.yy

我希望如此,当用户向xx.yy发送请求时,它只是将显示的主机更改为在同一个框上运行的另一个有效域。

我到目前为止(让服务器知道接受来自xx.yy的请求):

RewriteCond %{HTTP_HOST}   ^.*xx.yy [NC]
RewriteRule ^/(.*)$ http://127.0.0.1:<PORT_OMITTED>%{REQUEST_URI} [P,QSA,L]

RewriteCond %{HTTP_HOST}   ^.*mysite.com [NC]
RewriteRule ^/(.*)$ http://127.0.0.1:<PORT_OMITTED>%{REQUEST_URI} [P,QSA,L]

它有效,它会将流量引导到我的应用中,但当我想说http://xx.yy

时,网址会显示http://mysite.com

我知道我可以重定向到http://mysite.com而不是127.0.0.1,但我有4个并行的mysite.com框并且返回到DNS可能会转到另一个框似乎是浪费当我已经在这里此外,我不确定POST请求将如何工作。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果mysite.com位于同一个框中,而DNS指向该框,则只需将R=301放入[P,QSA,L]

实施例

RewriteEngine on
RewriteCond %{HTTP_HOST} ^OldDomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.OldDomain.com$
RewriteRule ^(.*)$ http://www.NewDomain.com/$1 [R=301,L]

来自http://www.liewcf.com/redirect-webpages-to-another-domain-538/

除此之外,尽管没有理由去做你所要求的事情。想象一下,如果有人可以链接到legitwebsite.com,但是它会被发送到evilempire.com。

这很混乱,就是这样。