我的公司使用Xerox Docushare进行文档管理。我们正在将2个docushare服务器合并为一个。假设用户在他们的浏览器中有很多docushare页面加入书签,是否可以将php文件放在根文件夹中,该文件夹将接收所有这些请求并执行重定向。
例如
http://old-server/docushare/dsweb/View/Collection-xxxx
会被重定向到
http://new-server/docushare/dsweb/View/Collection-yyyy
collection-xxxx to collection-yyyy可能来自我们打算在转换过程中生成的文件。
我确实看过了 http://php.net/manual/en/function.header.php 但这是在网址级别,而我希望转换旧路径上的所有请求。
感谢。
答案 0 :(得分:1)
根据我的观点,最简单的方法是放置 .htaccess文件。在文档根目录
中RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^old-server
RewriteRule http://old-server/docushare/dsweb/View/(.*)$ http://new-server/docushare/dsweb/View/$1 [R=301,L]
要获得更多灵感,请检查this page
PHP方式
在前端控制器或Web服务器首先出现的任何内容中,将使用$_SERVER变量进行调整,类似于此
if($_SERVER['SERVER_NAME'] == 'old-server')
{
$redirectionPath = str_replace('http://old-server/docushare/dsweb/View/', 'http://new-server/docushare/dsweb/View/', $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
header(sprintf('Location: %s', $redirectionPath), 301);
}
这是一种丑陋的方式,除非别无选择,否则不应使用它。更不用说我的盲目书面代码;)
我不知道你到底是什么情况,但我认为.htaccess文件解决方案解决了你遇到的问题