簡體   English   中英

magento nginx遷移重定向

[英]magento nginx redirection for migration

我有2個網站。 假設網站A和B。兩者都在使用Magento。

B中幾乎所有產品都內置在A中。

網站B將要關閉,因此其所有匹配的產品都將重定向到網站A。對於其他頁面(不匹配的產品和其他網址)將重定向到A的主頁。

我創建了腳本來將匹配產品從B映射到A(將其放在名稱mapping.txt下),其中包含大約20000 url。

為了進行重定向,我使用了nginx HttpMapModule(http://wiki.nginx.org/HttpMapModule)

我可以使用以下conf來映射它:

map $uri $new{
    default http://www.a.com/?ref=b;
    include /some/path/mapping.txt;
}

server {
    listen 80 ;
    listen 443 ssl;
    server_name www.b.com;
    root /some/path/www/b;

    #redirect b
    rewrite ^ $new redirect;

    location / {
        index index.html index.php;
        try_files $uri $uri/ @handler;
        expires 30d;
    }
    .
    .
    .
}

問題是,我希望能夠訪問B的管理員頁面。 由於使用默認地圖,因此我無法再訪問http://www.b.com/admin

然后,我更改了conf:

map $uri $new{
    default http://www.a.com/?ref=b;
    include /some/path/mapping.txt;
}

server {
    listen 80 ;
    listen 443 ssl;
    server_name www.b.com;
    root /some/path/www/b;

    location / {
        #redirect b
        rewrite ^ $new redirect;
        index index.html index.php;
        try_files $uri $uri/ @handler;
        expires 30d;
    }
    .
    .
    .
}

通過此conf,我仍然無法訪問http://www.b.com/admin但是我可以訪問http://www.b.com/index.php/admin但由於請求( http://www.b.com/skin/.....http://www.b.com/js/.....重定向到http://www.a.com/?ref=b

但是這個conf也有問題,如果我輸入http://www.b.com/index.php/customer/account/login ,它將不會重定向到A的主頁

mapping.txt的示例內容:

/product-abc.html http://www.a.com/product-abc12.html;
/category-a/product-xyz.html http://www.a.com/product-xyz.html;
/category-b/category-d/product-123.html http://www.a.com/category-e/product-12z.html;

對於這些一般情況,您可以在.htaccess上使用簡單的域重定向...

RewriteCond %{HTTP_HOST} ^www.a.com$ [NC]
RewriteRule ^(.*)$ http://www.b.com/$1 [R=301,L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM