Magento URL से /index.php निकालें 404 त्रुटि देता है


26

मैं Magento ver का उपयोग कर रहा हूँ। 1.7.0.2।

यह मेरी वेबसाइट का लिंक है: http://dev.blokeundees.com.au/

मुझे /index.phpURL से फ़ोल्डर को हटाना है, इसलिए मैंने .htaccessफ़ाइल को संपादित किया और बैकएंड भी (सुरक्षित, वेब सर्वर फिर से लिखता है) और /index.phpठीक से हटा दिया गया है।

लेकिन फ्रंटएंड तक पहुँचते समय, यह इंडेक्स पेज को छोड़कर हर पेज के लिए 404 एरर (पेज नहीं मिला) देता है।

मुझे नहीं पता कि ऐसा क्यों हो रहा है।


जैसा कि @ सैंडर-मैनगेल ने बताया कि आपकी जांच से htaccessमुझे पता चलेगा कि हम आपकी htaccess सामग्री प्रदान करेंगे, जिससे यह पता चल सके कि क्या गलत है
सिल्वेन रे

1
क्या आपने समस्या को हल करने का प्रबंधन किया है?
Sander Mangel

जवाबों:


27

Magento URLs से index.php कैसे निकालें

Magento ऑनलाइन बेचने के लिए एक शानदार मंच है, यकीनन सबसे अच्छा है, लेकिन एक चीज है जो मुझे हमेशा एक एसईओ के रूप में निराश करती है ... सभी आंतरिक पृष्ठों के URL में pesky index.php निर्देशिका - दुःस्वप्न!

उन्हें कोई फायदा नहीं हुआ।

वे एसईओ के लिए खराब हैं, साइट की संरचना और निरंतरता के लिए बुरा है, और फिर वे मेरे जैसे स्वच्छ यूआरएल फ्रीक के लिए और भी बदतर हैं। वे काफी सेक्सी नहीं हैं। चलो चीजों को साफ करते हैं।

दो चरणों में एसईओ फ्रेंडली मैगनेटो यूआरएल

सौभाग्य से, जबकि मैं हाल ही में एक ग्राहक के लिए एक Magento दुकान कर रहा था, मैं खुदाई का एक छोटा सा था और इस मुद्दे के लिए एक बहुत ही सीधा समाधान मिला। इसमें Magento के व्यवस्थापक सेटिंग में कुछ बदलाव और उनके मानक स्टोर URL की पुनर्लेखन को हल करने के लिए एक साधारण .htaccess फ़ाइल का जोड़ या संशोधन शामिल है।

नीचे दिए गए सरल चरणों का पालन करें और आप अपने खुद के Magento स्टोर के साथ एसईओ सफलता के करीब एक कदम होंगे, और आपके एसईओ में प्रासंगिकता के लिए कोई बहाना नहीं होगा।

1) चलो एक सेटिंग बदलें, व्यवस्थापक

पहली चीज़ जो आपको करने की ज़रूरत है वह है कि आप अपने Magento के व्यवस्थापक पैनल (index.php / admin) में प्रवेश करें ताकि एक बहुत ही सरल सेटिंग बदल सके जिससे Magento को पता चलेगा कि आप अपने बदसूरत डिफ़ॉल्ट के बजाय अपने स्टोर में URL पुनर्लेखन का उपयोग करना चाहते हैं। यूआरएल।

लॉगिन करें, और इस सेटिंग को बदलें:

सिस्टम> कॉन्फ़िगरेशन> वेब> खोज इंजन अनुकूलन पर जाएं

वेब सर्वर पुनर्लेखन का उपयोग करें: हाँ

यह आसान था, है ना? ठीक है, अब अंतिम चरण के लिए।

2) आइए यूआरएल को फिर से लिखने के लिए एक .htaccess फ़ाइल का उपयोग करें

अंतिम चरण में Magento के स्थापना फ़ोल्डर में एक .htaccess फ़ाइल बनाना शामिल है ताकि आप पहले अपने व्यवस्थापक सेटिंग्स में बदली गई सेटिंग्स की तारीफ कर सकें, और यह वास्तव में URL को फिर से लिखेगा। नीचे दिए गए लागू .htaccess संस्करण को चुनें।

यदि आपका Magento स्टोर रूट (public_html) में स्थापित है, तो इसका उपयोग करें:

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

यदि आपका Magento स्टोर सबफ़ोल्डर (public_html / shop) में स्थापित है, तो इसका उपयोग करें:

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

आप कर रहे हैं - आशा है कि मदद करता है!

यह निश्चित रूप से आपके एसईओ को उसके बालों को बाहर निकालने से रोक देगा।

यदि आप इस का उपयोग करते हैं या किसी भी समस्या में भाग लेते हैं तो मुझे नीचे टिप्पणी में बताएं!


2
यह मेरे Magento के संस्करण में काम नहीं करता है, 1.9.x। यह index.phpurl से निकालता है , लेकिन परिणाम 404s बाएँ और दाएँ।
ग्रीष्मकालीन डेवलपर

10

सुनिश्चित करें कि आपके पास एक काम करने वाली .htaccessफ़ाइल है, वैकल्पिक रूप से आप इसे एक ताज़ा Magento संस्करण डाउनलोड से ले सकते हैं।

यह भी जांचें कि mod_rewriteक्या आपके सर्वर पर सक्षम है। यह phpinfo();आपके सर्वर पर एक स्क्रिप्ट से पढ़कर किया जा सकता है । यह Stackoverflow पोस्ट आपको बताता है कि कैसे।


इसके अलावा, आपको यह सुनिश्चित करने की आवश्यकता है कि सिस्टम -> कॉन्फ़िगरेशन -> वेब -> खोज इंजन कॉन्फ़िगरेशन -> वेब सर्वर का उपयोग करें पुनर्लेखन सक्षम है।
बारबनेट

कार्य और लेखन .htaccess फ़ाइल।
रैप्टर

6

index.phpURL से निकालने के लिए निम्न चरणों का पालन करें:

  1. लॉग-इन Magento के व्यवस्थापक
  2. के लिए जाओ System -> Configuration -> Web
  3. से खोज इंजन अनुकूलन टैब का प्रयोग करें वेब सर्वर पुनर्लेखन का चयन हाँ
  4. सुनिश्चित करें कि आपका सिक्योर और अनसिक्योर बेस यूआरएल “/” के साथ समाप्त होना चाहिए ।
  5. अब अपना .htaccess(मैग्नेटो रूट फ़ोल्डर में होगा) को संपादित करें और इस लिंक पर दिए गए कोड को पेस्ट करें

5

आपको निम्नलिखित बिंदुओं के अलावा अन्य बदलने की आवश्यकता नहीं है। बस ये दो सेटिंग्स करें और आप ठीक हो जाएंगे। सिस्टम में -> कॉन्फ़िगरेशन -> वेब -> खोज इंजन अनुकूलन, हाँ का चयन करें।

और सिस्टम में -> कॉन्फ़िगरेशन -> वेब -> सुरक्षित -> दृश्यपटल में सुरक्षित URL का उपयोग करें, YES चुनें। अपने कैश को रिफ्रेश करें अगर अभी भी आपकी httpd.config फ़ाइल में समस्या का सामना करना पड़ रहा है। AllowOverride कोई भी परिवर्तन करने के लिए AllowOverride सभी अब ठीक हो जाएगा


मेरे httpd.config में, AllowOverride none, जैसी कोई लाइन नहीं है। तो फिर मैं कैसे कर सकता हूं AllowOverride All
zus

3

अधिकतर, जब हम WAMP / XAMPP में काम करते हैं, तो हमें आवश्यकता होती है:

1) rewrite_module की जांच करने के लिए सक्षम किया गया है

उदाहरण के लिए, जब हम C: \ wamp में wampp स्थापित करते हैं, तो हम C: \ wamp \ bin \ apache \ Apache2.4.9 \ _ में httpd.conf पा सकते हैं और इसे हटा सकते हैं # साइन होने के लिए इसे हटा दें

LoadModule rewrite_module modules/mod_rewrite.so

2) RewriteBase को सक्षम करने के लिए

उदाहरण के लिए, जब हम C: \ wamp \ www \ magento में magento v1.9 स्थापित करते हैं, तो हमें होने वाली डिफ़ॉल्ट .htaccess को magento रूट फ़ोल्डर में संपादित करने की आवश्यकता होती है।

RewriteBase /magento/

और इसके अलावा, हमें # चिह्न को हटाकर डिफ़ॉल्ट पुनर्लेखन नियम को सक्षम करने की आवश्यकता है

RewriteRule .* index.php [L]

3) सिस्टम में -> कॉन्फ़िगरेशन -> वेब -> खोज इंजन अनुकूलन, हाँ का चयन करें।

और सिस्टम में -> कॉन्फ़िगरेशन -> वेब -> सुरक्षित -> दृश्यपटल में सुरक्षित URL का उपयोग करें, YES चुनें।

जब हम LAMP सर्वर में काम करते हैं, तो यह समान है कि हमें पुन: लिखने के मॉड्यूल को काम करने में सक्षम करने के लिए उपरोक्त सभी वस्तुओं की जांच करने की आवश्यकता है, सोचा कि कई विवरणों में अंतर होना चाहिए।


3

URL से index.php को हटाने के लिए कार्य करना समाधान। और अगर कोई भी व्यक्ति index.php को URL में रखता है, तो वह URL पर रीडायरेक्ट करेगा, जिसमें index.php शामिल नहीं है। इसके लिए हमें वेब सर्वर रिवाइवर्स - सर्च इंजन ऑप्टिमाइजेशन से हां, सेट करने की भी आवश्यकता है

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

3

सबसे पहले सिस्टम-> कॉन्फ़िगरेशन-> वेब-> सर्च इंजन ऑप्टिमाइज़ेशन पर जाएं

और Use Web Server Rewrites ड्रॉपडाउन में हाँ का चयन करें

अब अपनी साइट के रूट पर जाएं

.Htaccess फ़ाइल खोलें यदि नहीं तो .htaccess फ़ाइल बनाएँ

स्थानीय में यह फ़ाइल छिपी हुई है इसलिए आपको छिपी हुई फ़ाइलें दिखाने की आवश्यकता है (ctrl + H)

अब अगर public_html में आपका root / है तो इस कोड को .htaccess में कॉपी करें

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

यदि आपकी साइट सबफ़ोल्डर public_html / yoursite में है तो इस कोड को .htaccess में कॉपी करें

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

अपने विचार को अपडेट करने के बाद, फिर भी मुझे काम न दें, क्या आप मुझे pls मदद कर सकते हैं @ magento.stackexchange.com/q/220973/57334
zus

2

सुनिश्चित करें कि mod_rewrite आपके सर्वर पर सक्षम है। मेरे मामले में यह अक्षम था। एक बार जब मैंने इसे सर्वर में सक्षम किया, तो यह ठीक से काम कर रहा है।


यदि मैं अपने सर्वर में mod_rewrite सक्षम या नहीं, तो मैं खुद को कैसे जांच सकता हूं
zus

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>

यदि आपका Magento उप-फ़ोल्डर में स्थापित है, उदाहरण के लिए 'शॉप', तो आपको निम्नलिखित कोड का उपयोग करना चाहिए:

<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. फिर अपने व्यवस्थापक पैनल और वेब सर्वर पुनर्लेखन को सक्षम करें। आप इसे सिस्टम> कॉन्फ़िगरेशन> वेब> खोज इंजन अनुकूलन पर पा सकते हैं।

अब "Search Engines Optiomization" के अंतर्गत "Use Web Server Rewrites" विकल्प को "Yes" पर सेट करें।

  1. फिर, "सिक्योर" यूज़ सिक्योर URLs इन फ्रंट " ऑप्शन " के अंतर्गत "यस" पर सेट करें। शीर्ष दाईं ओर "कॉन्फ़िगरेशन सहेजें" बटन पर क्लिक करें :

  2. फिर अपने कैश मैनेजमेंट पेज (सिस्टम> कैश मैनेजमेंट) को गेटो करें और अपने कैश को रिफ्रेश करें और वेब रीडायरेक्ट को भी रिफ्रेश करें।


2

मुझे बस मैगेंटो प्रोजेक्ट के मूल पाठ में .htaccess फाइल के बाद निम्नलिखित परिवर्तन करना था:

#RewriteBase /magento/

सेवा मेरे

RewriteBase /magento/

नोट: बस अपनी वेबसाइट के नाम के साथ Magento बदलें।


2

निम्नलिखित चरणों का उपयोग करके Magento में आंतरिक पृष्ठों सहित URL से index.php निकालें:

व्यवस्थापक पैनल की जाँच करें: वेब सर्वर का उपयोग करें रिवाइराइट्स को वेब> खोज इंजन अनुकूलन में 'हां' पर सेट किया जाना चाहिए और फिर 2 चरणों के बाद दिए गए अनुसरण करना चाहिए।

चरण 1: --------------- सभी लेआउट फ़ाइलों के शीर्ष पर यह कोड डालें (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();
}
?>

--------------------------------- END चरण 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]

HTTP से 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 ubuntu 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
  • सिस्टम> कॉन्फ़िगरेशन> वेब> खोज इंजन ऑप्टिमाइज़ेशन पर जाएं> वेब सर्वर का उपयोग करें रीराइट वाईईएस का चयन करें।
  • सुडो a2enmod फिर से लिखना
  • सेवा apache2 पुनरारंभ

इन 3 ने मेरे लिए काम किया।

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