.htaccess - 屏蔽并重定向到不同服务器上的子目录

Posted

技术标签:

【中文标题】.htaccess - 屏蔽并重定向到不同服务器上的子目录【英文标题】:.htaccess - Masking and redirecting to a subdirectory on a different server 【发布时间】:2013-07-21 09:13:38 【问题描述】:

我正在为我的 .htaccess 文件寻求帮助。

简而言之,我在子目录www.myserver.com/forum/ 中有一堆内容(此目录不是我的选择,无法更改),其中包括论坛(myserver.com/forum/forum)和维基(myserver.com/forum/wiki)这显然不是一个理想的布局。我不拥有 myserver.com,并且那里的内容不是我的,但我可以完全访问整个服务器。

我还有一个域名www.mydomain.com,我想对其进行重定向和屏蔽,这样如果用户转到mydomain.com/<something>,他们将看到来自myserver.com/forum/<something> 的内容,同时仍会在地址中显示mydomain.com/<something>酒吧。

我希望看到的另一件事,虽然不是很重要,但由输入 mydomain.com/somethingThatDoesNotExist 的人生成的 404 应该重定向到 mydomain.com/404.php 而不是 myserver.com 的默认 404。

过去一天左右,我尝试了多种不同的方法,并在网上进行了广泛的搜索 - 我确信答案甚至在某处,但我尝试过的所有指南/示例都没有工作,我觉得我在兜圈子。

非常感谢。

编辑:我确实知道 .htaceess 已启用。

【问题讨论】:

【参考方案1】:

如果用户访问 mydomain.com/,他们将看到 来自 myserver.com/forum/ 的内容仍在显示 mydomain.com/ 在地址栏中。

首先您需要了解的是,只有在 mydomain.com 的 Apache 服务器上启用了 mod_proxy 时,这才有可能。

mydomain.com 上通过httpd.conf 启用mod_proxy、mod_rewrite 和.htaccess 后,将此代码放在.htaccessDOCUMENT_ROOT 目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteRule ^(.*)$ http://myserver.com/$1 [L,P]

我将不得不多考虑一下您的 404 要求,但如果您能做到这一点,我相信我们也能找到解决方法。

【讨论】:

感谢您的回复。我无法在mydomain.com 上修改 htaccess,因为它已在 godaddy 注册,而且他们似乎只允许通过他们的界面进行修改。但是,我已经设法设置了所有内容,以便输入mydomain.com/<something> 将正确转发到myserver.com/forum/<something>,所以现在我只需要htaccess 代码使mydomain.com/<something> 出现在地址栏中。 好的,一定要告诉我。请记住,如果不使用 P 标志(启用 mod_proxy),则会发生外部重定向,并且 URL 确实会在浏览器中更改。 不,不应该,因为它不会为人类用户和搜索引擎呈现不同的内容。【参考方案2】:

您可以使用 PHP 或它们允许的任何其他语言进行一些代理.. 看看file_get_contents behind a proxy?

【讨论】:

以上是关于.htaccess - 屏蔽并重定向到不同服务器上的子目录的主要内容,如果未能解决你的问题,请参考以下文章

从 URL 中删除 2 个文件夹并重定向到页面

.htaccess mod_rewrite 在不同的站点上有不同的结果

单击按钮时弹出关闭并重定向到不同的页面!

更新数据库记录并重定向到不同页面的动态操作

htaccess替换所有URL的一部分

htaccess 将旧域重定向到新域