.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 后,将此代码放在.htaccess
的DOCUMENT_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 - 屏蔽并重定向到不同服务器上的子目录的主要内容,如果未能解决你的问题,请参考以下文章