11

OpenCart の複数の店舗で機能する SEO URL を取得しようとしています。

私は管理者に2つのストアを持っています

http://www.shop.com (default)
http://m.shop.com

SEO URL はhttp://www.shop.comに対して機能しますが、http: //m.shop.com に対しては not_found.tpl (404 ページ) を返します

ただし、これは機能します。

http://m.shop.com/index.php?route=product/product&path=68&product_id=52

SEO的には、そうあるべきです

/index.php?route=product/product&path=68&product_id=52

http://www.shop.com/product-title
http://m.shop.com/product-title (404 returned)

NGINXを使用しています。これは設定です:

www.shop.com

server {
    server_name  www.shop.com;
    listen 80;
    root /var/www/www.shop.com/;
    index index.php index.html;
    location /image/data {
        autoindex on;
    }
    location / {
        try_files $uri @opencart;       
    }
    location @opencart {
        rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }
    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

m.shop.com

server {
    server_name  m.shop.com;
    listen 80;
    root /var/www/www.shop.com/;
    index index.php index.html;
    location /image/data {
        autoindex on;
    }
    location / {
        try_files $uri @opencart;       
    }
    location @opencart {
        rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }
    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
4

2 に答える 2

8

この記事と詳細は、私の会社の SEO とマーケティング チームがこのツールを使用している人から入手しました。

XenForoフォーラムのnginx の Setup SEO Full Friendly URLs から:

それは実際には本当に本当に簡単です。

XenForo をディレクトリ「community」にアップロードしたことを考慮して、これを nginx 構成に追加するだけです。

location /community/ {
            index  index.php index.html index.htm;
            try_files  $uri $uri/ /community/index.php?$uri&$args;
        }

これを追加して、「internal_data」および「library」フォルダーへの外部アクセスをブロックすることもできます。

location ~ ^/community/(internal_data|library)/(.*)$ {
            internal;
        }

nginx を再起動し、Full Friendly URLs を有効にします。

複数の店舗をセットアップするための簡単な説明から? Opencart フォーラムで:

短いバージョンは次のとおりです。2
つのデモ サブドメイン
subA.domain.com
subB.domain.com
を作成し、両方のサブ ドメインを Web ホスト上の同じフォルダーに「ポイント」します。
すなわち public_html/shop
最初のサブドメインに opencart をインストールしてから、管理者を経由して別のストアを追加します。

したがって、Shop1 subA.domain.com と Shop2 subB.domain.com の両方で同じコードを実行することになります。

それが理にかなっていることを願っています。

于 2013-05-17T10:23:21.447 に答える
0

OpenCart は複数店舗の SEO URL を処理しません。これを行う唯一の方法は、m.shop.vhost内に URL を手動で追加することです。location {}

これは機能します(例)

www.shop.com.vhost

www.shop.com/index.php?route=checkout/cart
www.shop.com/checkout/cart

rewrite ^/checkout/cart?$ /index.php?route=checkout/cart last;

そして、これは機能しません:

m.shop.com/checkout/cart - 404 が返されます。

これでうまくいきます

m.shop.com.vhost

    location / {

    rewrite ^/checkout/cart?$ /index.php?route=checkout/cart last;

}

必要なすべての SEO URL を手動で追加するだけです。もちろん、手動で追加することはできないため、製品リンクにはグローバルなスマートな書き換えが必要です。私が何か提案することがあるとすれば - もしこれがモバイルサイトなら - SEO URL は本当に必要ありません..ユーザーは携帯電話でそれらをほとんど使用しません.知識のあるユーザーはフレンドリーな SEO リンクを高く評価するでしょうが、PHP 文字列とパラメータとクエリを使用する方が良いかもしれません.電話で使用するには - 唯一の欠点は、高度なリダイレクトが必要なことです。

私の推測では、これを機能させて、電話のヘッダーを www から m に、m から www に自動的に変更できるようにして、リダイレクト クラスを簡単にできるようにしたいと考えています。終わり。負荷分散された 2 つのサーバーで NGINX を使用し、Magento、OpenCart、および会社のストア用の別のスクリプトを使用しています。OpenCart で大量の取引を行っている真面目な企業の 1 つであることを期待しています。当社には、国際的な注文とその内部での言語クエリを処理する専任チームがあります。

于 2013-05-13T08:54:19.063 に答える