Nginx

2013-05-07 16 views
11

का उपयोग कर ओपनकार्ट पर बहु ​​स्टोर्स और सबडोमेन पर एसईओ यूआरएल सक्षम करें। मैं ओपनकार्ट में बहु-स्टोर्स में एसईओ यूआरएल काम करने की कोशिश कर रहा हूं।Nginx

मैं व्यवस्थापक

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

एसईओ यूआरएल http://www.shop.com के लिए काम में दो भंडार है लेकिन वे एक not_found.tpl http://m.shop.com

के लिए (404 पेज) लौट हालांकि यह काम करता है:

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

एसईओ वार, यह

होना चाहिए 210
/index.php?route=product/product&path=68&product_id=52 

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

मैं एनजीआईएनएक्स का उपयोग कर रहा हूं।

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; 
    } 
} 
+1

यदि मुझे गलत नहीं है, तो ये सेटअप बिल्कुल वही दिखते हैं। आप केवल 'सर्वर {...} 'अनुभाग का उपयोग क्यों नहीं करते हैं और' m.shop.com' को' server_name' निर्देश में जोड़ते हैं? आपकी गलती के लिए, मेरे सिर के शीर्ष से मेरे पास केवल एक दूर अनुमान है: क्या आपकी 'm.shop.com' कॉन्फ़िगर वास्तव में सक्रिय है? उन्हें कभी-कभी कॉन्फ़िगरेशन फ़ाइलों के साथ एक निर्देशिका में व्यवस्थित किया जाता है, और एक ऐसा जहां आप इसे एक सिम्लिंक रखना चाहते हैं। लिंक वहाँ है, है ना? – Carsten

+0

लिंक वहां है .. साइट काम करती है .. m.shop.com साइट काम करती है और यह अन्य ओपनकार्ट स्टोर दिखाती है - एसईओ यूआरएल हालांकि काम नहीं करते हैं। – TheBlackBenzKid

+0

मुझे ओपन कार्ट के साथ अनुभव नहीं है, हालांकि, अगर आपको nginx के माध्यम से ऐसा करना है तो मैं उत्सुक हूं? यदि नहीं, तो आप सिर्फ .htaccess फ़ाइल को संशोधित नहीं कर सकते हैं और एक मॉड रीराइट का उपयोग कर सकते हैं। यहां एक उदाहरण है जो मैंने एक स्टोर [उदाहरण] (http://www.templatemonster.com/help/files/OpenCart/opencart_seo_urls.htm) के साथ पाया है। शायद यह सहायक होगा। – Dropzilla

उत्तर

0

OpenCart बहु दुकानों के लिए एसईओ यूआरएल प्रबंधन नहीं करती है: यह config है। एक ही तरीका है यह करने के लिए - मैन्युअल m.shop.vhost

यह काम करेंगे (उदाहरण)

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; 

की location {} भीतर URL जोड़ने और यह काम नहीं करेगा:

m.shop.com/checkout/cart - यह वापस आ जाएगी 404.

यह यह काम कर देगा

m.shop.com.vhost 

    location/{ 

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

} 

आपको बस अपने इच्छित एसईओ यूआरएल मैन्युअल रूप से जोड़ना होगा। उत्पाद लिंक के लिए एक वैश्विक स्मार्ट री-राइट की आवश्यकता होगी क्योंकि निश्चित रूप से आप उन्हें मैन्युअल रूप से जोड़ नहीं सकते हैं। अगर मैं कुछ सुझाव दे सकता हूं - यदि यह एक मोबाइल साइट है - तो आपको वास्तव में एसईओ यूआरएल की आवश्यकता नहीं है .. उपयोगकर्ता शायद ही फोन के लिए उनका इस्तेमाल करते हैं, यकीन है कि savy उपयोगकर्ता दोस्ताना एसईओ लिंक की सराहना करेगा लेकिन PHP स्ट्रिंग और पैरामीटर का उपयोग करके और प्रश्न बेहतर हो सकते हैं फोन पर उपयोग करने के लिए - केवल नकारात्मक पक्ष के लिए इसे उन्नत पुनर्निर्देशन की आवश्यकता है।

मेरा अनुमान है कि आप यह काम करना चाहते हैं ताकि आप स्वचालित रूप से केवल www से m और m से www तक हेडर को आसानी से बदल सकें ताकि फोन के लिए आसान रीडायरेक्शन क्लास .. यदि ऐसा है तो मैं किसी से सुनना चाहता हूं अन्यथा यह किसने किया है। हम 2 लोड संतुलित सर्वरों पर एनजीआईएनएक्स का उपयोग करते हैं और हमारी कंपनी स्टोर के लिए Magento, OpenCart और दूसरी स्क्रिप्ट का उपयोग करते हैं। हमें पसंद है कि आप ओपनकार्ट पर उच्च मात्रा के लेनदेन करने वाली गंभीर कंपनियों में से एक हैं - हमारे पास अंतरराष्ट्रीय आदेश और भाषा प्रश्नों को संभालने वाली एक समर्पित टीम है ..

+1

'ओपनकार्ट बहु-स्टोर्स के लिए एसईओ यूआरएल संभाल नहीं करता है।' मुझे लगता है कि ओसी समुदाय में हर कोई असहमत होगा ?? – TheBlackBenzKid

8

मुझे इस कंपनी और एसईओ में किसी से यह लेख और विवरण मिला है,

यह वास्तव में वास्तव में बहुत सरल है: विपणन टीम इस उपकरण ..

XenForo मंचों पर Setup SEO Full Friendly URLs on nginx से

उपयोग कर रहे हैं।

ध्यान में रखकर आप निर्देशिका "समुदाय" में XenForo अपलोड कर दिया है, बस अपने nginx config से जोड़ें:

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

आप भी फ़ोल्डर्स के लिए बाहरी पहुँच ब्लॉक में जोड़ने के लिए चाहते हो सकता है आप इसे पर हैं जबकि "internal_data" और "लाइब्रेरी"।

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

nginx को पुनरारंभ करें और पूर्ण मित्रतापूर्ण URL सक्षम करें।

Straight Forward Easy Instructions for Multi-Store Setup? Opencart मंचों पर से:

लघु संस्करण है:
2 डेमो उप डोमेन
subA.domain.com
subB.domain.com
और "बिंदु बनाने "दोनों वेब डोमेन आपके वेब होस्ट पर एक ही फ़ोल्डर में हैं।
i.e. public_html/shop
पहले उप डोमेन में ओपनकार्ट इंस्टॉल करें और फिर व्यवस्थापक के माध्यम से जाएं और एक अतिरिक्त स्टोर जोड़ें।

तो आपके पास Shop1 subA.domain.com और Shop2 subB.domain.com दोनों एक ही कोड चलाएंगे।

आशा है कि यह समझ में आता है।

+0

@TheBlackBenzKid यह काम करता है ... यह एक बुनियादी विचार है कि इसे कैसे कार्यान्वित किया जाए !! –

+0

मैं ओपनकार्ट का उपयोग नहीं कर रहा हूं XenForo -100 – TheBlackBenzKid