.htaccess将子域重定向到域/子目录而不更改URL

时间:2015-02-25 01:11:48

标签: php apache .htaccess mod-rewrite redirect

我在网上彻底搜索了这个答案,没有运气。

我正在尝试编写执行以下操作的htaccess重定向:

重定向:

subdomain.DomainA.com

为:

DomainB.com/subdir/

但不更改地址栏中显示的网址,并保持直接链接访问subdomain.DomainA.com

因此subdomain.DomainA.com/link/1000变为DomainB.com/subdir/link/1000

这是我去过的最接近的,但我还没有能够指出它。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain.DomainA.com$
RewriteRule ^(.*)$ http://DomainB.com%{REQUEST_URI} [P]

我还尝试了RewriteRule ^(.*)$ http://DomainB.com/subdir%{REQUEST_URI} [P],但由于某种原因,这会返回subdomain.DomainA.com/subdir :(

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如上所述,当你使用[P]时,你正在有效地调用mod_proxy。您必须先使其工作,然后才能在重写规则中使用它。事实上,您是否为您尝试访问的主机启用了代理?

http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxy

<Proxy http://DomainB.com>
   Require all granted
</Proxy>

您可以增加LogLevel(和/或)RewriteLogLevel以帮助调试它无法正常工作的原因(如果代理拒绝在重写日志中或只是普通错误日志,我无法回忆)< / p>