0

我需要将旧域的请求重定向到新域,同时保留旧域中的页面。

  • page.json 包含发布数据并将在旧域上处理
  • 带有发布数据的 data.json,需要重定向到新域
  • 带有发布数据的 stat.json 需要重定向到新域...并继续

编辑:简而言之,所有带有发布数据的 .json 都会重定向到新域,除了 1 页

如果可能的话,我怎样才能完成它?我使用提琴手在原始视图中进行调试

重定向之前(使用 .htaccess 方法)

POST http://old.com/data.json HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.1.2; GT-N7105 Build/JZO54K)
Host: old.com
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 100

session=gVgr30Erxf03cDaA&store_version=9203b&inventory_version=123

重定向后

GET http://new.com/data.json HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.1.2; GT-N7105 Build/JZO54K)
Host: new.com
Connection: Keep-Alive
Accept-Encoding: gzip
4

2 回答 2

1

.htaccessmod_rewrite一起使用

RewriteEngine On
RewriteRule ^page\.json$  -                        [L]
RewriteCond %{REQUEST_METHOD} =POST
RewriteRule ^(.*\.json)$  http://newdomain.com/$1  [R=307,QSA]
  • 第二行说:如果页面匹配 'page.json' 则不要更改并停止重写[L]
  • 第 3 行说:只做重写 POST 请求
  • 第 4 行说:计算以 '.json' 结尾的任何内容,并临时重定向 [R=307]http://newdomain.com/ {page}。还要添加任何 URL 参数[QSA]

概念证明

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_METHOD} =POST
RewriteRule ^$  http://test.jasny.net/redirect/posthere.php  [R=307,QSA]

索引.html

<form action="/redirect/" method="POST">
  <input type="text" name="test">
  <button type="submit">Submit</button>
</form>

postthere.php

<?
  var_dump($_POST);

看它工作

于 2013-02-13T14:24:40.533 回答
0

我同意 arnold,.htaccess,但如果你只想要带有 $_POST 数据的请求,那么我将创建一个处理请求的小 php 文件,测试它是否包含帖子然后重定向到你的旧域,如果不重定向到新域

.htaccess

RewriteCond %{REQUEST_METHOD} =POST
RewriteRule ^foo/bar$ http%1://www.example.com%{REQUEST_URI} [L,R=301]

或将所有流量重定向到 php 文件并执行以下操作:

if( count( $_POST ) < 1 ) {
    header( "HTTP/1.0 301 Moved Permanently" ); 
    header( "Status: 301" );
    header( "Location: http://".CLIENT_DOMAIN."{$_SERVER['REQUEST_URI']}");     
    die();//or exit;
}else{////same}
于 2013-02-13T14:45:03.790 回答