Magento URL থেকে /index.php সরান 404 ত্রুটি দেয়


26

আমি ম্যাজেন্টো ভেরি ব্যবহার করছি। 1.7.0.2।

এখানে এটি আমার ওয়েবসাইটের লিঙ্ক: http://dev.blokeundees.com.au/

আমাকে /index.phpইউআরএলগুলি থেকে ফোল্ডারটি সরিয়ে ফেলতে হবে তাই আমি .htaccessফাইলটি এবং ব্যাকএন্ডও সম্পাদনা করেছি (সুরক্ষিত, ওয়েব সার্ভার পুনর্লিখন) এবং /index.phpসঠিকভাবে সরানো হয়েছে।

সীমান্তে অ্যাক্সেস করার সময়, এটি সূচী পাতা ব্যতীত প্রতিটি পৃষ্ঠার জন্য একটি 404 ত্রুটি (পৃষ্ঠা খুঁজে পাওয়া যায় না) প্রদান করে।

আমি জানি না কেন এমন হচ্ছে।


@ স্যান্ডার-ম্যানজেলের ব্যাখ্যা অনুসারে আপনার চেকটি পরীক্ষা করে htaccessআমি কী ভুল তা ধারণা পেতে আপনার htaccess বিষয়বস্তু সরবরাহ করব
সিলওয়াইন রায়ে

1
আপনি সমস্যাটি সমাধান করতে পরিচালনা করেছেন?
স্যান্ডার মঞ্জেল

উত্তর:


27

ম্যাজেন্টো ইউআরএল থেকে সূচি.পিএফ কীভাবে সরানো যায়

ম্যাজেন্টো হ'ল অনলাইনে বিক্রয়ের জন্য দুর্দান্ত প্ল্যাটফর্ম, তর্কযোগ্যভাবে সেরা, তবে এমন একটি জিনিস রয়েছে যা আমাকে সর্বদা এসইও হিসাবে হতাশ করে রেখেছিল… সমস্ত অভ্যন্তরীণ পৃষ্ঠাগুলির ইউআরএলগুলিতে এই পেস্কি ইনডেক্স.এফপি ডিরেক্টরি - দুঃস্বপ্ন!

তাদের কোনও লাভ নেই।

তারা SEO এর পক্ষে খারাপ, সাইটের কাঠামো এবং ধারাবাহিকতার জন্য খারাপ এবং তারপরে তারা আমার মতো পরিষ্কার ইউআরএল ফ্রিকের জন্য আরও খারাপ। তারা যথেষ্ট সেক্সি না। আসুন জিনিস পরিষ্কার করা যাক।

দুটি পদক্ষেপে এসইও বন্ধুত্বপূর্ণ ম্যাজেন্টো ইউআরএল

সৌভাগ্যক্রমে, যখন আমি সম্প্রতি একটি ক্লায়েন্টের জন্য একটি ম্যাজেন্টো স্টোর করছি, আমি কিছুটা খনন করেছিলাম এবং সমস্যার একটি সহজ সরল সমাধান পেয়েছি। এতে ম্যাজেন্টো অ্যাডমিন সেটিংসে বেশ কয়েকটি পরিবর্তন এবং তাদের স্ট্যান্ডার্ড স্টোর ইউআরএলগুলি পুনরায় লেখার জন্য বাছাই করার জন্য একটি সরল .htaccess ফাইলের সংযোজন বা সংশোধন জড়িত।

নীচের সহজ পদক্ষেপগুলি অনুসরণ করুন এবং আপনার নিজের ম্যাজেন্টো স্টোরের সাথে আপনি এসইও সাফল্যের আরও এক ধাপ এগিয়ে যাবেন এবং আপনার এসইওতে প্রাসঙ্গিকতা হ্রাস করার কোনও অজুহাত থাকবে না।

1) আসুন একটি সেটিংস পরিবর্তন করুন, অ্যাডমিন

আপনাকে প্রথমে যা করতে হবে তা হ'ল আপনার ম্যাজেন্টো অ্যাডমিন প্যানেলে (ইনডেক্স.এফপি / অ্যাডমিন) লগইন করা যাতে খুব সহজ সেটিংস পরিবর্তন করতে পারে যা ম্যাগান্তোকে জানাতে পারে যে আপনি আপনার স্টোর জুড়ে কুরুচিপূর্ণ ডিফল্টের পরিবর্তে ইউআরএল পুনর্লিখন ব্যবহার করতে চান? URL গুলি।

লগইন করুন এবং এই সেটিংটি পরিবর্তন করুন:

সিস্টেম> কনফিগারেশন> ওয়েব> অনুসন্ধান ইঞ্জিন অপ্টিমাইজেশনে যান

ওয়েব সার্ভার পুনর্লিখনগুলি ব্যবহার করুন: হ্যাঁ

এটা সহজ ছিল, তাই না? ঠিক আছে, এখন চূড়ান্ত পদক্ষেপের জন্য।

2) ইউআরএলগুলি পুনরায় লেখার জন্য একটি .htaccess ফাইল ব্যবহার করা যাক

চূড়ান্ত পদক্ষেপে আপনার প্রশাসক সেটিংসের মধ্যে আপনি যে সেটিংস পরিবর্তন করেছেন সেটির প্রশংসা করার জন্য ম্যাজেন্টো ইনস্টলেশন ফোল্ডারে একটি htaccess ফাইল তৈরি করা জড়িত রয়েছে এবং এটি আসলে URL গুলি পুনরায় লেখবে। নীচে প্রযোজ্য .htaccess সংস্করণটি চয়ন করুন।

যদি আপনার ম্যাজেন্টো স্টোরটি রুটে ইনস্টল করা থাকে (সর্বজনীন_এইচটিএমএল), এটি ব্যবহার করুন:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

যদি আপনার ম্যাজেন্টো স্টোরটি একটি সাবফোল্ডার (পাবলিক_এইচটিএমএল / শপ) এ ইনস্টল করা থাকে তবে এটি ব্যবহার করুন:

RewriteEngine On
RewriteBase /shop/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /shop/index.php [L]

আপনি সম্পন্ন করেছেন - আশা করি যে সাহায্য করে!

এটি অবশ্যই আপনার এসইওকে তার চুল আউট করা থেকে বিরত করবে।

আপনি যদি এটি ব্যবহার করেন বা কোনও সমস্যা নিয়ে চলে যান তবে নীচের মন্তব্যে আমাকে জানতে দিন!


2
এটি আমার ম্যাজেন্টো, 1.9.x সংস্করণে কাজ করে না এটি index.phpইউআরএল থেকে সরিয়ে দেয় তবে 404s বাম এবং ডানদিকে ফলাফল করে।
গ্রীষ্ম বিকাশকারী

10

আপনার একটি কার্যকরী .htaccessফাইল রয়েছে তা নিশ্চিত করুন, allyচ্ছিকভাবে আপনি এটি একটি তাজা ম্যাজেন্টো সংস্করণ ডাউনলোড থেকে নিতে পারেন।

mod_rewriteআপনার সার্ভারে সক্ষম আছে কিনা তাও পরীক্ষা করে দেখুন। phpinfo();এটি আপনার সার্ভারের কোনও স্ক্রিপ্ট থেকে পড়ার মাধ্যমে করা যেতে পারে । এই স্ট্যাকওভারফ্লো পোস্টটি আপনাকে জানায় কীভাবে।


এছাড়াও আপনাকে নিশ্চিত হওয়া দরকার যে সিস্টেম -> কনফিগারেশন -> ওয়েব -> অনুসন্ধান ইঞ্জিনগুলি কনফিগারেশন -> ওয়েব সার্ভার পুনরায় লেখাগুলি সক্ষম enable
বার্বনেট

ওয়ার্কিং এবং লিখনযোগ্য .htaccess ফাইল।
র‌্যাপ্টর

6

index.phpইউআরএল থেকে অপসারণ করতে নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. লগ-ইন ম্যাজেন্টো অ্যাডমিন
  2. যাও System -> Configuration -> Web
  3. থেকে সার্চ ইঞ্জিন অপ্টিমাইজেশান ট্যাব ব্যবহার ওয়েব সার্ভার নতুন করে লেখা হয় নির্বাচন হ্যাঁ
  4. আপনার সুরক্ষিত এবং অনিরাপদ বেস urlগুলি "/" দিয়ে শেষ হওয়া উচিত তা নিশ্চিত করুন ।
  5. এখন আপনার সম্পাদনা করুন .htaccess(ম্যাজেন্টো মূল ফোল্ডারে থাকবে) এবং এই লিঙ্কটিতে প্রদত্ত কোডটি পেস্ট করুন

5

নিম্নলিখিত পয়েন্টগুলি বাদ দিয়ে অন্য পরিবর্তন করার দরকার নেই। কেবল এই দুটি সেটিংস করুন এবং আপনি ঠিক থাকবেন। সিস্টেমে -> কনফিগারেশন -> ওয়েব -> অনুসন্ধান ইঞ্জিন অনুকূলিতকরণ, নির্বাচন করুন নির্বাচন করুন ES

এবং সিস্টেমে -> কনফিগারেশন -> ওয়েব -> সুরক্ষিত -> সম্মুখভাগে সুরক্ষিত ইউআরএল ব্যবহার করুন, হ্যাঁ নির্বাচন করুন। যদি এখনও সমস্যার মুখোমুখি হয়ে থাকে তবে আপনার ক্যাশে রিফ্রেশ করুন আপনার httpd.config ফাইলটিতে। AllowOverride কিছুই পরিবর্তন করুন AllowOverride এ এখনই সব ঠিক হয়ে যাবে


আমার httpd.config এ, AllowOverride কিছুই নয়, এর মতো কোনও লাইন নেই। তাহলে আমি কীভাবে AllowOverride All
zus

3

বেশিরভাগ ক্ষেত্রে, যখন আমরা ডাব্লুএএমপি / এক্সএএমপিপিতে কাজ করি, আমাদের প্রয়োজন:

1) পুনর্লিখন_মডিউল সক্ষম করতে সক্ষম হয়েছে তা পরীক্ষা করতে

উদাহরণস্বরূপ, যখন আমরা C: \ wamp এ wampp ইনস্টল করি, আমরা সি: \ wamp \ বিন \ অ্যাপাচি \ apache2.4.9 \ কনফেমে httpd.conf খুঁজে পেতে পারি এবং এটি # সাইন অপসারণের মাধ্যমে সক্ষম করে থাকি

LoadModule rewrite_module modules/mod_rewrite.so

2) রিরাইটবেস সক্ষম করতে

উদাহরণস্বরূপ, যখন আমরা সি: amp wamp \ www \ magento এ ম্যাজেন্টো v1.9 ইনস্টল করি তখন আমাদের ডিফল্ট সম্পাদনা করতে হবে। magento মূল ফোল্ডারে htaccess হতে

RewriteBase /magento/

এবং এছাড়াও, আমাদের # চিহ্ন সরিয়ে ডিফল্ট পুনর্লিখনের নিয়ম সক্ষম করতে হবে

RewriteRule .* index.php [L]

3) সিস্টেমে -> কনফিগারেশন -> ওয়েব -> অনুসন্ধান ইঞ্জিন অনুকূলিতকরণ, হ্যাঁ নির্বাচন করুন select

এবং সিস্টেমে -> কনফিগারেশন -> ওয়েব -> সুরক্ষিত -> সম্মুখভাগে সুরক্ষিত ইউআরএল ব্যবহার করুন, হ্যাঁ নির্বাচন করুন।

আমরা যখন ল্যাম্প সার্ভারে কাজ করি তখন এটি একই রকম হয় যে পুনর্লিখনের মডিউলটি কাজ করতে সক্ষম করতে আমাদের উপরের সমস্ত আইটেমগুলি পরীক্ষা করতে হবে, ভেবেছিল সেখানে অনেকগুলি বিবরণের পার্থক্য থাকা উচিত।


3

অ্যাডমিনকে বাদ দিয়ে ইউআরএল থেকে index.php অপসারণের জন্য কাজ করার সমাধান Working এর জন্য আমাদের সেটও করতে হবে, ওয়েব সার্ভার পুনর্লিখনগুলি ব্যবহার করুন - হ্যাঁ সার্চ ইঞ্জিন অপটিমাইজেশন

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index.php/admin/
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

3

প্রথমে সিস্টেম-> কনফিগারেশন-> ওয়েব-> অনুসন্ধান ইঞ্জিন অপ্টিমাইজেশনে যান

এবং হ্যাঁ ওয়েব সার্ভার পুনরায় লেখার ড্রপডাউন নির্বাচন করুন

এখন আপনার সাইটের রুটে যান

.Htaccess ফাইল না হলে ওপেন করুন। Htaccess ফাইল

স্থানীয়ভাবে এই ফাইলটি লুকানো রয়েছে সুতরাং আপনার লুকানো ফাইলগুলি দেখানো দরকার (ctrl + H)

এখন যদি আপনার রুটটি সর্বজনীন_ html / এ থাকে তবে এই কোডটি .htaccess এ অনুলিপি করুন

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

যদি আপনার সাইটটি সাব-ফোল্ডারে থাকে তবে সর্বজনীন_এইচটিএমএল / thyite এই কোডটি .htaccess এ অনুলিপি করুন

RewriteEngine On
RewriteBase /yousite/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /yousite/index.php [L]

আপনার ধারণাটি আপডেট করার পরে, এখনও আমার কাজ করবে না, আপনি কি আমাকে সাহায্য করতে পারবেন @ magento.stackexchange.com/q/220973/57334
zus

2

আপনার সার্ভারে মোড_আরাইট সক্ষম করা আছে তা নিশ্চিত করুন। আমার ক্ষেত্রে এটি অক্ষম ছিল। একবার আমি এটি সার্ভারে সক্ষম করলে এটি সঠিকভাবে কাজ করে is


আমার সার্ভারে
মোড_আরাইট

2
  1. আপনার সাইটের মূল ফোল্ডারটি যান এবং আপনি .htaccess ফাইলটি খুঁজে পেতে পারেন। শুধু যে সম্পাদনা করুন। এটি একটি পাঠ্য সম্পাদক এ খুলুন এবং এই লাইনটি সন্ধান করুন,

পুনর্লিখন বেস / ম্যাজেন্টো /।

Just replace it with

পুনর্লিখন বেস /। .Htaccess এ নিম্নলিখিত কোডটি রাখুন

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

আপনার ম্যাজেন্টো সাব-ফোল্ডারে যেমন ইনস্টল করা আছে যেমন, 'শপ', আপনার নিম্নলিখিত কোডটি ব্যবহার করা উচিত:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /shop/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /shop/index.php [L] </IfModule>
  1. তারপরে আপনার অ্যাডমিন প্যানেলে যান এবং ওয়েব সার্ভার পুনর্লিখনগুলি সক্ষম করুন। আপনি এটি সিস্টেম> কনফিগারেশন> ওয়েব> অনুসন্ধান ইঞ্জিন অপ্টিমাইজেশনে খুঁজে পেতে পারেন।

Now সেট "ব্যবহার ওয়েব সার্ভার নতুন করে লেখা হয়" অধীনে বিকল্প "ইঞ্জিন অনুসন্ধান Optiomization" করতে "হ্যাঁ"।

  1. তারপরে, "সিকিওর" এর অধীনে "হ্যাঁ" এর নীচে " ফ্রন্ট্যান্ডে সুরক্ষিত ইউআরএলগুলি ব্যবহার করুন" বিকল্পটি সেট করুন উপরের ডানদিকে "সংরক্ষণ করুন কনফিগারেশন" বোতামটি ক্লিক করুন :

  2. তারপরে আপনার ক্যাশে পরিচালনা পৃষ্ঠা (সিস্টেম> ক্যাশে পরিচালনা) এ যান এবং আপনার ক্যাশে রিফ্রেশ করুন এবং ওয়েব পুনর্নির্দেশগুলি রিফ্রেশ করুন।


2

আমাকে কেবল ম্যাজেন্টো প্রকল্পের মূলের .htaccess ফাইলে নিম্নলিখিত পাঠ্য পরিবর্তন করতে হয়েছিল:

#RewriteBase /magento/

থেকে

RewriteBase /magento/

দ্রষ্টব্য: আপনার ওয়েবসাইটের নাম সহ কেবলমাত্র ম্যাজেন্টো পরিবর্তন করুন।


2

নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে ম্যাজেন্টোতে অভ্যন্তরীণ পৃষ্ঠাগুলি সহ ইউআরএল থেকে index.php সরান:

অ্যাডমিন প্যানেল চেক করুন: ওয়েব> সার্চ ইঞ্জিন অপ্টিমাইজেশনে 'হ্যাঁ' এ সেট করতে হবে ওয়েব সার্ভার রিটারিটস ব্যবহার করুন এবং তারপরে 2 টি পদক্ষেপের নীচে অনুসরণ করুন।

পদক্ষেপ 1: --------------- সমস্ত লেআউট ফাইলের উপরে এই কোডটি sertোকান (1 কলাম এবং অন্যান্য সমস্ত) --------------

<?php 
$abc = Mage::helper('core/url')->getCurrentUrl();
if(strpos($abc,'index.php/') !== false) {
$pos = strpos($abc,'index.php/');
$p1 = substr($abc,0,$pos);
$p2 = substr($abc,$pos+10,strlen($abc));
$url = $p1.$p2;
header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");
exit();
}
?>

--------------------------------- সমাপ্তি পদক্ষেপ 1 -------------- -------------------------

পদক্ষেপ 2: --------------- htaccess ফাইলটিতে 'পুনরায় লেখার ইঞ্জিন চালু করার আগে' এই কোডটি সন্নিবেশ করুন --------------

ডিফল্ট ডোমেনের উপর index.php

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteCond %{REQUEST_URI} !^/downloader.*$
RewriteRule ^(.*)index.php$ www.abc.com [R=301,L]
RewriteCond %{HTTP_HOST} ^abc.com$ [NC]

HTTPS থেকে HTTPS পুনঃনির্দেশ

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/downloader.*$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_URI} !^/downloader.*$
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

----------------------------------- শেষ পদক্ষেপ 2 ------------ -------------------------------------

দ্রষ্টব্য: দ্বিতীয় ধাপে, কেবলমাত্র আপনার সাইটের URL টি পরিবর্তন করুন। পদক্ষেপ 1 এ কিছু করার দরকার নেই।


1

যদি কেউ Apache2 উবুন্টু 16.04 ব্যবহার করে থাকে তবে আপনি সার্ভারের কোথাও httpd.conf ফাইলটি দেখতে পাচ্ছেন না, সুতরাং নীচের কোডটি প্রতিস্থাপনের চেয়ে আপনার পথে যেতে হবে: / etc / apache2 / apache2.conf

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

নীচের কোড সহ:

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

এর পরে, সার্ভারটি পুনরায় চালু করুন: sudo service apache2 restart


0
  • সিস্টেম> কনফিগারেশন> ওয়েব> অনুসন্ধান ইঞ্জিন অপ্টিমাইজেশন> ওয়েব সার্ভার পুনর্লিখনগুলি ব্যবহার করুন নির্বাচন করুন এ নির্বাচন করুন।
  • sudo a2enmod পুনর্লিখন
  • পরিষেবা apache2 পুনরায় চালু করুন

এই 3 আমার জন্য কাজ।

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