/İndex.php dosyasını Magento URL'sinden kaldır 404 hatası veriyor


26

Magento ver kullanıyorum. 1.7.0.2.

İşte web siteme link: http://dev.blokeundees.com.au/

/index.phpKlasörü URL’lerden kaldırmalıyım ..htaccess dosyayı ve arka uç da (güvenli, web sunucusu yeniden yazar) ve /index.phpdüzgün bir şekilde kaldırıldım.

Ancak, ön uçlara erişirken, dizin sayfası dışındaki her sayfa için bir 404 hatası (Sayfa bulunamadı) döndürür.

Bunun neden olduğunu bilmiyorum.


@ Sander-mangel'in htaccesssöylediği gibi ekleyeceğinizi kontrol edin, yanlış olan bir fikir edinmek için bize htaccess içeriğinizi sağlayın
Sylvain Rayé

1
Sorunu çözmeyi başardınız mı?
Sander Mangel

Yanıtlar:


27

İndex.php Magento URL'lerinden Kaldırma

Magento, tartışmasız en iyi online satış için harika bir platform, ancak her zaman bir SEO olarak beni hayal kırıklığına uğratan bir şey var… TÜM iç sayfaların URL'sinde sinir bozucu index.php dizini - kabus!

Onlara faydası yok.

SEO için kötü, site yapısı ve tutarlılık için kötü, ve sonra benim gibi temiz bir URL hastası için daha da kötüler. Yeterince seksi değiller. Hadi işleri temizleyelim.

İki Adımda SEO Dostu Magento URL'leri

Neyse ki, yakın zamanda bir müşteri için bir Magento mağazası yaparken, biraz kazma yaptım ve konuya oldukça basit bir çözüm buldum. Standart mağaza URL'lerinin yeniden yazılmasını düzenlemek için Magento yönetici ayarlarında ve basit bir .htaccess dosyasının eklenmesi veya değiştirilmesinde birkaç değişiklik yapılması gerekir.

Aşağıdaki basit adımları takip edin, kendi Magento mağazanızla SEO başarısına bir adım daha yaklaşırsınız ve SEO'nuzun azalan alaka için mazereti olmaz.

1) Bir Ayar Değiştirelim, Yönetici

Yapmanız gereken ilk şey, Magento'nun çirkin varsayılan yerine mağazanızda URL yeniden yazmayı kullanmayı planladığınızı bilmesini sağlayacak çok basit bir ayarı değiştirmek için Magento yönetici panelinize (index.php / admin) giriş yapmaktır. URL'ler.

Giriş yapın ve bu ayarı değiştirin:

Sistem> Yapılandırma> Web> Arama Motoru Optimizasyonu'na gidin

Web Sunucusu Yeniden Yazmalarını Kullan: EVET

Bu kolaydı, değil mi? Tamam, şimdi son adım için.

2) URL'leri Yeniden Yazmak İçin Bir .htaccess Dosyası Kullanalım

Son adım, daha önce yönetici ayarlarınızda değiştirdiğiniz ayarları tamamlayabilmek için Magento yükleme klasöründe bir .htaccess dosyası oluşturmayı içerir ve bu aslında URL'leri yeniden yazar. Aşağıdaki uygulanabilir .htaccess sürümünü seçin.

Magento mağazanız köke (public_html) kurulmuşsa, şunu kullanın:

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

Magento mağazanız bir alt klasöre kurulmuşsa (public_html / shop), şunu kullanın:

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

Sen bittin - yardımcı olur umarım!

Kesinlikle SEO'nuzu saçını çekmekten alıkoyacak.

Bunu kullanırsanız ya da herhangi bir sorun yaşarsanız aşağıdaki yorumlarda bana bildirin!


2
Bu Magento versiyonumda çalışmıyor, 1.9.x. index.phpURL'yi kaldırır , ancak sol ve sağ 404'lerle sonuçlanır.
Yaz Geliştirici,

10

Çalışan bir .htaccessdosyanız olduğundan emin olun , isteğe bağlı olarak yeni bir Magento sürüm indirmesinden edinebilirsiniz.

mod_rewriteSunucunuzda etkin olup olmadığını da kontrol edin . Bu, phpinfo();sunucunuzdaki bir komut dosyasından okunarak yapılabilir . Bu Stackoverflow gönderisi size nasıl olduğunu anlatır.


Ayrıca Sistem -> Konfigürasyon -> Web -> Arama Motorları Konfigürasyon -> Web Sunucusu Yeniden Yazma Kullanımının etkin olduğundan emin olmanız gerekir.
Barbanet

Çalışma ve yazılabilir .htaccess dosya.
Raptor,

6

index.phpURL’lerden kaldırmak için aşağıdaki adımları izleyin:

  1. Giriş Magento Yöneticisi
  2. Git System -> Configuration -> Web
  3. Gönderen Arama Motoru Optimizasyonu sekmesi Kullanım Web Sunucusu yeniden yazar seçmek EVET .
  4. Emin olun Güvenli ve Unsecure baz URL'ler bitmelidir “/” .
  5. Şimdi düzenleyin .htaccess(magento root klasöründe olacak) ve bu linkte verilen kodu yapıştırın

5

Aşağıdaki noktalardan başka bir değişiklik yapmanıza gerek yoktur. sadece bu iki ayarı yapın ve iyi olacaksınız. Sistem -> Yapılandırma -> Web -> Arama Motorları Optimizasyonlarında, YES seçeneğini seçin.

Ve Sistem -> Konfigürasyon -> Web -> Güvenli -> Ön uçta güvenli URL'ler kullanın, YES seçeneğini seçin. Httpd.config dosyanızda hala karşılaşılan sorun devam ederse önbelleğinizi yenileyin. AllowOverride Hiçbiri AllowOverride All All olarak değiştirildi.


Httpd.config dosyasında, AllowOverride None, gibi bir satır yok. sonra AllowOverride
All'ı

3

Çoğunlukla, WAMP / XAMPP'de çalıştığımızda, şunlara ihtiyacımız var:

1) rewrite_module'un etkin olup olmadığını kontrol etmek

örneğin, wampp'i C: \ wamp'a yüklediğimizde httpd.conf'u C: \ wamp \ bin \ apache \ apache2.4.9 \ conf içinde bulabilir ve # işaretini kaldırarak etkinleştirebiliriz.

LoadModule rewrite_module modules/mod_rewrite.so

2) RewriteBase'i etkinleştirmek için

örneğin, magento v1.9'u C: \ wamp \ www \ magento içine yüklediğimizde, varsayılan .htaccess dosyasını magento root klasöründe düzenlemeliyiz.

RewriteBase /magento/

Ayrıca, # işaretini kaldırarak varsayılan yeniden yazma kuralını etkinleştirmemiz gerekiyor

RewriteRule .* index.php [L]

3) Sistem -> Yapılandırma -> Web -> Arama Motorları Optimizasyonlarında, YES seçeneğini seçin.

Ve Sistem -> Konfigürasyon -> Web -> Güvenli -> Ön uçta güvenli URL'ler kullanın, YES seçeneğini seçin.

LAMP sunucusunda çalıştığımızda, yeniden yazma modülünün çalışabilmesi için yukarıdaki tüm öğeleri kontrol etmemiz gerekir, aynı zamanda birçok detay farklılığının olması gerektiğini düşündük.


3

İndex.php 'yi URL hariç Admin'den çıkarmak için çalışma çözümü. URL'yi index.php alan biri varsa index.php içermeyen URL'ye yönlendirir. Bunun için ayrıca, Web Sunucusu Yeniden Yazmalarını Kullan - Evet, Arama Motorları Optimizasyonundan Evet ayarlamamız gerekir.

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

3

İlk önce sistem-> configuration-> web-> Arama Motorları Optimizasyonuna gidin

Ve seçmek evet Kullanım Web Sunucusu Yeniden yazımlar açılır listede

Şimdi sitenin köküne git

.Htaccess dosyasını açın, sonra değilse .htaccess dosyası oluşturun

yerelde bu dosya gizlidir, böylece gizli dosyaları göstermeniz gerekir (ctrl + H)

Şimdi root dizini public_html / dizinindeyse bu kodu .htaccess içine kopyalayın.

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

Siteniz bir alt klasördeyse public_html / yoursite Bu kodu .htaccess içine kopyalayın

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


2

Mod_rewrite sunucunuzda etkin olduğundan emin olun. Benim durumumda devre dışı bırakıldı. Sunucuda etkinleştirdiğimde düzgün çalışıyor.



2
  1. Sitenizin kök klasörüne gidin ve .htaccess dosyasını bulabilirsiniz. Sadece onu düzenleyin. Bir metin editöründe açın ve bu satırı bulun,

Bankası yeniden yaz / magento /.

Just replace it with

Bankası Yeniden Yaz /. Aşağıdaki kodu .htaccess içine yerleştirin.

<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'nuz alt klasöre, örneğin 'dükkan' üzerine kurulursa, aşağıdaki kodu kullanmanız gerekir:

<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. Ardından Yönetici Panelinize gidin ve Web Sunucusu Yeniden Yazmayı etkinleştirin. Sistem> Yapılandırma> Web> Arama Motoru Optimizasyonu bölümünde bulabilirsiniz.

Şimdi set “Kullanım Web Sunucusu Yeniden yazımlar” altında seçeneğini “Arama Motorları Optiomization” için “Evet”.

  1. Ardından "Güvenli" altındaki "Güvenli URL'leri Ön Uçta Kullan" seçeneğini "Evet" olarak ayarlayın. Click “Kaydet Yapılandırma” sağ üstteki düğmeye:

  2. Sonra Önbellek Yönetimi sayfanıza gidin (Sistem> Önbellek Yönetimi) ve Önbelleğinizi yenileyin ve Web Yönlendirmelerini de yenileyin.


2

Sadece magento projesinin kökündeki .htaccess dosyasındaki metni değiştirmek zorunda kaldım:

#RewriteBase /magento/

için

RewriteBase /magento/

Not: Magento'yu web sitenizin adıyla değiştirin.


2

Aşağıdaki adımları kullanarak index.php dosyasını iç sayfalar dahil olmak üzere Magento'ya ekleyin.

Yönetici panelini kontrol edin: Web Sunucusu Yeniden Yazma Kullanımı ', Web> Arama Motorları Optimizasyonu'nda' Evet 'olarak ayarlanmalı ve ardından 2 adımda verilenleri takip etmelidir.

Adım 1: --------------- Bu mizanpajı tüm düzen dosyalarının üstüne yerleştirin (1 sütun ve diğerleri) --------------

<?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 Adım 1 -------------- -------------------------

Adım 2: --------------- Bu kodu 'Yeniden yazmayı aç' yazmadan önce htaccess dosyasına ekleyin --------------

varsayılan etki alanında 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'den HTTPS'ye yeniden yönlendirme

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]

------------------------------------- END Adım 2 ------------ -------------------------------------

Not: 2. adımda, sitenizin URL’sini değiştirin. 1. adımda hiçbir şey yapmanıza gerek yok.


1

Apache2 ubuntu 16.04 kullanan herhangi biri, sunucunun herhangi bir yerinde httpd.conf dosyasını görmezseniz , aşağıdaki kodu değiştirmek yerine path: / etc / apache2 / apache2.conf yoluna gitmeniz gerekir.

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

aşağıdaki kod ile:

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

Bundan sonra sunucuyu yeniden başlatın: sudo service apache2 restart


0
  • Sistem> Yapılandırma> Web> Arama Motoru Optimizasyonu> Web Sunucusu Yeniden Yazmalarını Kullan seçeneğine gidin, YES seçeneğini seçin.
  • sudo a2enmod yeniden yazmak
  • servis apache2 yeniden başlat

Bu 3 benim için çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.