ডিফল্ট ব্যতীত প্রতিটি স্টোর ভিউয়ের জন্য URL এ স্টোর কোড


10

আমি ইউআরএলগুলিতে সিস্টেম > কনফিগার > ওয়েব > স্টোর কোড যুক্ত করেছি এবং কানাডার (/ সিএ /) জন্য একটি নতুন স্টোর ভিউ সেটআপ করেছি।

আমি আদর্শভাবে কানাডা স্টোর ভিউ লোড করতে চাই, তবে defaultডিফল্ট স্টোরের জন্য উদাহরণ ডটকম ( সেখানে স্টোর কোড ছাড়াই ) রাখতে চাই।

আমি লক্ষ্য করেছি যে হোম পৃষ্ঠাটি এই বিষয়ে ঠিকঠাক কাজ করে তবে আমি যখন কোনও পণ্য পৃষ্ঠাতে চলে যাই তখন ম্যাগেন্টো স্বয়ংক্রিয়ভাবে স্টোর কোডটি ইউআরএলে অন্তর্ভুক্ত করে।

আমি আমাদের ডিফল্ট স্টোরের জন্য আমাদের বর্তমান ইউআরএলগুলি পরিবর্তন করতে দ্বিধা বোধ করছি তার মূল কারণটি হ'ল আমি তাদের যে কোনও লিঙ্কের রস হারাতে দেখে ঘৃণা করি। আমি জানি যে তাত্ত্বিকভাবে যতক্ষণ আমি 301 পুনর্নির্দেশগুলি সেটআপ করি ততক্ষণ আমার ভাল হওয়া উচিত, তবে আমার মনে হয় আমি কোথাও পড়েছি যে অল্প পরিমাণে রস এখনও হারিয়ে গেছে।

এছাড়াও, আমি মনে করি এটি সম্ভবত ব্যবহারের দিক থেকে কিছুটা ভাল। যদি আপনার ট্র্যাফিকের বেশিরভাগ অংশ আপনার ডিফল্ট স্টোর হয় এবং আপনার গ্রাহকরা নিয়মিত ইউআরএল থেকে অভ্যস্ত হন তবে কেন তাদের URL এ অতিরিক্ত /default/( /us/বা যা কিছু) দিয়ে বিরক্ত করবেন ।

আমি ইউআরএলগুলিতে স্টোর কোড যুক্ত করার চেষ্টা করেছি এবং কেবল আমার কানাডা স্টোর ভিউর জন্য বেস ইউআরএল উদাহরণ / সিএইচ / তে পরিবর্তন করেছি, তবে এটি কিছুই করেনি বলে মনে হয়। আমি ধরে নিচ্ছি ইউআরএল-এ স্টোর কোড বাছাই করতে এবং এটি দিয়ে কিছু করার জন্য সেটিংস সক্ষম হওয়া দরকার।

উত্তর:


9

আমি ইউআরএল-এ স্টোর কোড যুক্ত করে খুশি হইনি । মূল কারণটি হ'ল আমাদের একই ভাষা ব্যবহার করে বেশ কয়েকটি স্টোর ভিউ থাকতে পারে না (আমার প্রশ্নটি দেখুন )। এ ছাড়া আমি পছন্দ করি না যে কেবলমাত্র ইউআরএল এর কারণে আমাকে একটি খারাপ স্টোর ভিউ কোড ব্যবহার করতে হবে।

আমি প্রায়শই প্রস্তাবিত "একটি সাবফোল্ডার তৈরি করুন এবং সিমলিঙ্কগুলি তৈরি করুন" টিপটি ব্যবহার করে একটি ছোট পরীক্ষা করেছি এবং এটি কাজ করতে পারে। আপনি এটি পছন্দ করেন কিনা তা পরীক্ষা করুন।

  • একটি সাবফোল্ডার / সিএ / তৈরি করুন
  • সাবফোল্ডারের ভিতরে প্রতীকী লিঙ্কগুলি তৈরি করুন
    • ../app
    • ../errors
    • ../includes
    • ../index.php
    • ../js
    • ../lib
    • ../মিডিয়া
    • ../skin
    • ../var
    • (আপনি চাইলে / প্রয়োজনে অন্যান্য ডিরেক্টরি যুক্ত করুন)
  • আপনার সিএইচ / সিএ / (অথবা .এইচটিএক্সেসি / সিএ / তে সম্পাদনা করুন) এর জন্য vHost কনফিগারেশন সম্পাদনা করুন

    • পুনর্লিখনের বেসটি সেট করুন:

      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
আপনাকে কেবল মিডিয়া, জেএস এবং ত্বকের জন্য সিমলিংক তৈরি করতে হবে এবং তারপরে Mage শ্রেণীর পথটি সম্পাদনা করতে হবে ../app/Mage.php। যতদূর আমি জানি যে যথেষ্ট হওয়া উচিত
স্যান্ডার ম্যানগেল

2
হ্যাঁ, আপনি যদি মূল ফাইলগুলি সম্পাদনা করতে চান।
ম্যাথিয়াস জেইস

@ মাথিয়াসজেস এত দীর্ঘ সময় গ্রহণের জন্য দুঃখিত! কখনও কখনও আমি এসই বিজ্ঞপ্তিগুলির ট্র্যাক হারিয়ে ফেলেছি এবং এগুলি অপঠিত হিসাবে চিহ্নিত করা শক্ত। কোনও উত্তর স্বীকৃত হিসাবে চিহ্নিত করতে চিরকাল নিলে ভবিষ্যতে টুইটারে আমাকে বিনা দ্বিধায় পড়ুন! কমপক্ষে টুইটারের সাহায্যে আপনি কোনও টুইটকে আবার ফিরে আসার কথা মনে রাখতে পছন্দ করতে পারেন। দুঃখিত এবং আবার এখানে সহায়তার জন্য ধন্যবাদ! দুর্দান্ত উত্তর!
কালেঞ্জর্ডান

কোন চিন্তা করো না! আমি আপনাকে সাহায্য করতে পারে খুশি।
ম্যাথিয়াস জেইস

2
দুর্দান্ত পরামর্শ! দুটি সম্ভাব্য simplifications: 1) যেহেতু আপনি পৃথক vhost কনফিগারেশনের বা সাব জন্য .htaccess ফাইল তৈরি করেন, আপনি শর্ত ছাড়াই দোকান দৃশ্য সহজবোধ্য আরম্ভ করতে পারেন: SetEnv MAGE_STORE_VIEW caRewriteBaseঅন্যদিকে সাধারণত প্রয়োজন হয় না। ২) ইন্ডেক্স.এফপি এবং অ্যাপে সিমলিংক স্থাপন করা যথেষ্ট, যদি আপনি কেবল বেস লিংক
ইউআরএলকে

2

ব্যবহারকারী clockworkgeek নির্মিত Magento-স্টোর-কোড মডিউল শুধু এই ব্যবহার-ক্ষেত্রে জন্য।

আমি সিই ১.৯.২.৩ এ একাধিক স্টোর ভিউ সহ একক ওয়েবসাইট সেটআপ দিয়ে এটি পরীক্ষা করেছি এবং দেখে মনে হচ্ছে এটি পুরোপুরি কাজ করে!

এছাড়াও দেখুন: ম্যাজেন্টো: ইউআরএল থেকে ডিফল্ট স্টোর ভিউ কোডটি কীভাবে আড়াল করবেন


1

মাইজিস এবং 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

অন্য বিকল্পটি হ'ল স্টোর প্রতি সাবডোমেন ব্যবহার করা। তারপরে আপনি "ম্যাচেন্টো" কোন "ওয়েবসাইট / স্টোর" ব্যবহার করবেন তা বলার জন্য কেবল অ্যাপাচি সেটআপ করেছেন।

এইভাবে আপনি একই ম্যাজেন্টো ইনটলে সমস্ত সাবডোমেন ওয়েবসাইটের অধীনে একাধিক "স্টোর" এবং "ভিউ" রাখতে পারেন।

  • সেটিংস সিস্টেম> কনফিগারেশন> সাধারণ / ওয়েবে রয়েছে in
  • অনিরাপদ . বেস ইউআরএল
  • নিরাপদ . বেস ইউআরএল
  • কুকি। ডোমেইন

এটি উদাহরণ.কম স্টোর অ্যাপাচি কনফিগারেশন

<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

এটি আপনার সিস্টেম.এক্সএমএল ফাইলের একটিতে যুক্ত করুন (অ্যাপ্লিকেশন / কোড / স্থানীয় মডিউলে):

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

এভাবে আপনি স্টোর ভিউতে "URL গুলিতে স্টোর কোড যুক্ত করুন" বিকল্পটি চয়ন করতে পারেন।


আপনি এটি নির্বাচন করতে সক্ষম। তবে আপনি কি নিশ্চিত যে এটি আসলে কাজ করে?
ফ্যাবিয়ান শেমংলার

হ্যাঁ, ম্যাজেন্টো 1.9.x এবং ম্যাজেন্টো EE 1.13.x
nverhoye

এটি যদি সত্যিই কাজ করে তবে দুর্দান্ত হত তবে আমি একটি ওয়েবসাইট এবং একাধিক স্টোরের দর্শন দিয়ে একটি সেটিংসে এই কাজটি করতে পারিনি। সিই পরীক্ষিত 1.9.2.3।
আধা ম্যাথিজসেন

আমার জন্য কাজ হয়নি
বিশাখ বি সুজাতা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.