Adil F
Adil F

Reputation: 447

redirect all http requests

My company uses Xerox Docushare for document management. We are consolidating 2 docushare servers into one. Assuming users have a lot of docushare pages bookmarked in their browser, is it possible to place a php file in the root folder which will receive all these requests and perform a redirect.

For example

http://old-server/docushare/dsweb/View/Collection-xxxx

would get redirected to

http://new-server/docushare/dsweb/View/Collection-yyyy

The collection-xxxx to collection-yyyy would probably come from a file we intend to generate as part of the conversion.

I did take a look at http://php.net/manual/en/function.header.php but that is on a url level whereas i am looking to convert all requests on the older path.

Thanks.

Upvotes: 0

Views: 328

Answers (1)

Mailo Světel
Mailo Světel

Reputation: 26031

By my opinion, the simplest way is to put .htaccess file. In the root of your document root

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]

For more inspiration check this page


The PHP way

In front controller or whatever is hitten as first by web server, will be condition, using $_SERVER variable, similar to this

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);
}

This is the ugly way and you should not use it unless you have no other choice. Not to mention my blind written code ;)

I don't know exactly in what situation you are, but i think the .htaccess file solution solves issue you are experiencing

Upvotes: 1

Related Questions