डिफ़ॉल्ट को छोड़कर प्रत्येक स्टोर दृश्य के लिए URL में स्टोर कोड


10

मैंने सिस्टम > कॉन्फ़िगरेशन > वेब > URL में स्टोर कोड जोड़ें और कनाडा (/ ca /) के लिए एक नया स्टोर दृश्य सक्षम किया है।

मैं आदर्श रूप से example.com/ca/ को कनाडा स्टोर दृश्य लोड करना चाहता हूं, लेकिन अभी भी default.com ( defaultडिफ़ॉल्ट रूप से स्टोर कोड के बिना ) है।

मैंने देखा है कि होम पेज इस संबंध में ठीक काम करता है, लेकिन जब मैं किसी उत्पाद पृष्ठ पर जाता हूं, तो Magento स्वचालित रूप से URL में स्टोर कोड शामिल करता है।

मुख्य कारण यह है कि मैं अपने डिफ़ॉल्ट स्टोर के लिए हमारे वर्तमान URL को बदलने में संकोच कर रहा हूं क्योंकि मैं उन्हें किसी भी लिंक जूस को देखने से नफरत करना चाहता हूं। मुझे पता है कि सैद्धांतिक रूप से जब तक मैं 301 रीडायरेक्ट सेटअप करता हूं, मुझे ठीक होना चाहिए, लेकिन मुझे लगता है कि मैंने कहीं पढ़ा है कि थोड़ी मात्रा में रस अभी भी खो गया है।

इसके अलावा, मुझे लगता है कि यह प्रयोज्य दृष्टिकोण से शायद कुछ बेहतर है। यदि आपके ट्रैफ़िक का बड़ा हिस्सा आपके डिफ़ॉल्ट स्टोर पर है, और आपके ग्राहकों को नियमित URL के लिए उपयोग किया जाता है, तो उन्हें URL में अतिरिक्त /default/( /us/या जो भी) से परेशान करें।

मैंने URL में स्टोर कोड जोड़ने को अक्षम करने का प्रयास किया है और बस अपने कनाडा स्टोर दृश्य के लिए बेस URL को बदलकर example.com/ca/ पर रखा है, लेकिन ऐसा कुछ भी प्रतीत नहीं हुआ। मैं मान रहा हूं कि URL में स्टोर कोड लेने और इसके साथ कुछ भी करने के लिए सेटिंग को सक्षम करने की आवश्यकता है।

जवाबों:


9

मैं URL में Add Store Code का उपयोग करके खुश नहीं था । मुख्य कारण यह था कि हम एक ही भाषा (मेरा प्रश्न देखें ) का उपयोग करके कई स्टोर विचार नहीं कर सकते थे । इसके अलावा मुझे यह पसंद नहीं आया कि मुझे केवल URL की वजह से एक खराब स्टोर व्यू कोड का उपयोग करना है।

मैंने अक्सर सिफारिश की गई "सबफ़ोल्डर बनाकर और सीमलिंक" टिप का उपयोग करके एक छोटा परीक्षण किया और यह काम कर सकता है। पसंद आने पर जरूर देखें।

  • एक सबफ़ोल्डर / ca / ​​बनाएँ
  • सबफ़ोल्डर के अंदर प्रतीकात्मक लिंक बनाते हैं
    • ../app
    • ../errors
    • ../includes
    • ../index.php
    • ../js
    • ../lib
    • ../media
    • ../त्वचा
    • ../var
    • (यदि आप चाहते / चाहते हैं तो अन्य निर्देशिकाओं को जोड़ें)
  • के लिए अपने vHost config / / (या कॉपी .htaccess to / ca / ​​और इसे संपादित करें) को संपादित करें

    • पुनर्लेखन आधार सेट करें:

      RewriteBase /ca/

    • URL के आधार पर सही स्टोर दृश्य को आरम्भ करें। इसे करने के कई तरीके हैं, एक हो सकता है:

      RewriteCond %{REQUEST_URI} ^/ca/.* [NC,OR]
      RewriteCond %{REQUEST_URI} ^/ca$ [NC]
      RewriteRule .* - [E=MAGE_RUN_CODE:ca]
      RewriteCond %{ENV:REDIRECT_MAGE_RUN_CODE} (.+)
      RewriteRule .* - [E=MAGE_RUN_CODE:%1,E=MAGE_RUN_TYPE:store]`

इसने मेरे लिए काम किया:

फोल्डर बनाना और सिम्लिंक बनाना मजेदार नहीं है लेकिन कम से कम आपको कोर फाइल्स को एडिट करने की जरूरत नहीं है।


2
आपको केवल मीडिया, js और स्किन के लिए सहानुभूति बनानी होगी और फिर Mage क्लास पथ को संपादित करना होगा ../app/Mage.php। जहाँ तक मुझे पता है कि पर्याप्त होना चाहिए
Sander Mangel

2
हां, यदि आप कोर फाइल्स को एडिट करना चाहते हैं।
मथायस ज़ीस

@MatthiasZeis को स्वीकार करने में इतना समय लगने के लिए खेद है! कभी-कभी मैं एसई सूचनाओं का ट्रैक खो देता हूं और उन्हें अपठित के रूप में चिह्नित करना मुश्किल होता है। भविष्य में मुझे ट्विटर पर पिंग करने के लिए स्वतंत्र महसूस करें यदि मैं हमेशा के लिए एक उत्तर को स्वीकार कर लेता हूं! कम से कम ट्विटर के साथ आप इसे वापस आने के लिए याद रखने के लिए एक ट्वीट को पसंदीदा बना सकते हैं। यहाँ मदद के लिए फिर से क्षमा करें और धन्यवाद! बहुत बढ़िया जवाब!
कालेंजर्डन

कोई चिंता नहीं! मुझे खुशी है कि मैं आपकी मदद कर सका।
मथायस ज़ीस

2
बढ़िया सलाह! दो संभव सरलीकरण: 1) चूंकि आप अलग-अलग vHost कॉन्फ़िगरेशन या सबडिरेक्टस के लिए .htaccess फाइल बनाते हैं, आप बिना किसी शर्त के स्टोर व्यू को सीधा कर सकते हैं SetEnv MAGE_STORE_VIEW ca:। RewriteBaseदूसरी ओर आमतौर पर आवश्यक नहीं है। 2) अगर आप केवल आधार लिंक URL को / ca / ​​पर सेट करते हैं और डिफ़ॉल्ट बेस URL कॉन्फ़िगरेशन
Fabian Schmengler

2

यूजर क्लॉकवर्कजेक ने केवल इस उपयोग-मामले के लिए मैगेंटो-स्टोर-कोड्स मॉड्यूल बनाया ।

मैंने इसे CE 1.9.2.3 पर एक ही वेबसाइट सेटअप के साथ कई स्टोर दृश्यों के साथ परीक्षण किया है, और यह पूरी तरह से काम करने के लिए लग रहा था!

इसे भी देखें: Magento: url से डिफॉल्ट स्टोर व्यू कोड कैसे छिपाएं


1

के आधार पर mzeis का जवाब और fschmengler की टिप्पणी है, यहाँ यह करने का एक KISS तरीका है:

  1. एक उपनिर्देशिका बनाएँ ca:mkdir ca
  2. appनिर्देशिका के लिए एक सिमलिंक बनाएँ :ln -s ../app/ ca/app
  3. index.phpफ़ाइल के लिए एक सिमलिंक बनाएँ :ln -s ../index.php/ ca/index.php
  4. निर्देशिका .htaccessमें एक फ़ाइल बनाएँ ca: touch ca/.htaccessनिम्नलिखित सामग्री के साथ:

    SetEnv MAGE_RUN_CODE ca
    
    RewriteEngine On
    RewriteBase /en/
    
    # solves the issue that the environment variable MAGE_RUN_CODE is only available as REDIRECT_MAGE_RUN_CODE
    # see http://stackoverflow.com/a/10128290/719023 for details
    RewriteOptions inherit
  5. के तहत System > Configuration > Web, सेट Base Link URLकरने के लिए {{unsecure_base_url}}ca/और {{secure_base_url}}ca/क्रमशः।

यदि, किसी कारण से, RewriteOptions inheritभाग आपके लिए संभव नहीं है, तो आप इसके बजाय डिफ़ॉल्ट mod_rewriteभाग को अपनी उप-निर्देशिका .htaccessफ़ाइल में कॉपी कर सकते हैं ।

इस समाधान को मेज़िस से उतना ही अच्छा काम करना चाहिए, लेकिन यह बहुत छोटा और आसान है।


0

एक अन्य विकल्प प्रति दुकान एक उपडोमेन का उपयोग करना है। फिर आप बस Apache को Magento को बताने के लिए सेटअप करें जिसे "वेबसाइट / स्टोर" का उपयोग करना है।

इस तरह से आप एक ही Magento intall में सबडोमेन वेबसाइटों के तहत कई "स्टोर" और "विचार" कर सकते हैं।

  • सेटिंग्स सिस्टम> कॉन्फ़िगरेशन> सामान्य / वेब में हैं
  • असुरक्षित। आधार URL
  • सुरक्षित । आधार URL
  • कुकी। डोमेन

यह उदाहरण है। Apache config स्टोर

<VirtualHost *:80>
    AllowEncodedSlashes On

    ServerName example.com
    ServerAdmin admin@example.com
    DocumentRoot /var/www/html/

    DirectoryIndex index.php

    <Directory "/var/www/html/" >
        AllowOverride All
    </Directory>

    SetEnv MAGE_RUN_CODE "default"
    SetEnv MAGE_RUN_TYPE "Website"
</VirtualHost>

यह अतिरिक्त "सीए" स्टोर अपाचे कॉन्फ़िगरेशन है

<VirtualHost *:80>
    AllowEncodedSlashes On

    ServerName ca.example.com
    ServerAdmin admin@example.com
    DocumentRoot /var/www/html/

    DirectoryIndex index.php

    <Directory "/var/www/html/" >
        AllowOverride All
    </Directory>

    SetEnv MAGE_RUN_CODE "ca"
    SetEnv MAGE_RUN_TYPE "Website"
</VirtualHost>

0

Juste इसे अपने सिस्टम में जोड़ें। xml फ़ाइल (ऐप्लिकेशन / कोड / स्थानीय मॉड्यूल में):

<sections>
    <web>
        <groups>
            <url>
                <fields>
                    <use_store>
                        <show_in_store>1</show_in_store>
                    </use_store>
                </fields>
            </url>
        </groups>
    </web>
</sections>

इस तरह आप प्रति स्टोर दृश्य में "स्टोर कोड को यूआरएल में जोड़ें" विकल्प चुन सकते हैं।


आप इसका चयन करने में सक्षम हैं। लेकिन क्या आपको यकीन है, कि यह वास्तव में काम करता है?
फेबियन शेंगलर

हाँ, Magento 1.9.x और Magento EE 1.13.x पर परीक्षण किया गया
nverhoye

यह बहुत अच्छा होता अगर यह वास्तव में काम करता, लेकिन मैं एक वेबसाइट और कई स्टोर व्यू के साथ सेटिंग में यह काम नहीं कर पाया। सीई 1.9.2.3 पर परीक्षण किया गया।
Aad Mathijssen

मेरे लिए काम नहीं किया
विशाख बी सुजाथन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.