我有多个虚拟服务器 - 意味着具有多个端口的相同域名,如1234,5678,7890等,以及相同的代码库。以下是详细信息:
域:www.whatever:1234.com
文件夹:/fool/
,/foo2/
,/foo3/
foo1/.htaccess:
RewriteEngine On
RewriteRule ^(.*)$ /foo2/$1 [L]
foo2/.htaccess:
RewriteEngine On
RewriteRule ^blah$ /foo3/a.html [L,R=301]
现在,预期的行为是:
www.whatever.com:1234/foo1/blah
重定向到www.whatever.com:1234/foo3/a.html
,
实际上我认为它是:
www.whatever.com:1234/foo1/blah
重定向到www.whatever.com/foo3/a.html
剥离端口号!!
然而,如果我将R=301
放在foo1/.htaccess
中,那么有两种重定向,例如:
www.whatever.com:1234/foo1/blah
再次重定向到www.whatever.com:1234/foo2/blah
重定向到www.whatever.com:1234/foo3/a.html
但我不希望用户看到两个重定向。另外,我不想在foo2 / .htaccess中硬编码主机名,因为我在不同的虚拟服务器上有相同的代码库。
我在foo1/.htaccess
中尝试过PT选项,但这不起作用。那么,请你帮帮我吗?
答案 0 :(得分:0)
您可以使用:
foo2的/ htaccess的:
RewriteEngine On
RewriteRule ^blah$ http://%{HTTP_HOST}:${SERVER_PORT}/foo3/a.html [L,R=301]