Penulisan Ulang URL di Magento

Diterbitkan: 2014-09-11

Sangat penting bagi semua situs web untuk memiliki URL yang ramah untuk melayani tujuan SEO. Namun tidak selalu mudah bagi kami untuk membuatnya di Magento terutama saat Anda menginstal modul. Bagaimana kita bisa mengatasi masalah ini sebagai pengguna non-teknis? Kami menyediakan 2 solusi yang layak untuk Penulisan Ulang URL di Magento dan membuat URL yang sesuai seperti yang Anda inginkan. Anda lihat itu tidak akan menjadi masalah besar lagi.

PANAS!! Claue versi 2.0 telah dirilis

claue2_edited (1)

Lihat Demo

Claue – Clean, Minimal Magento 2&1 Theme adalah template yang sangat baik untuk toko eCommerce modern dan bersih dengan 40+ tata letak beranda dan banyak pilihan untuk toko, blog, portofolio, tata letak pencari toko, dan halaman berguna lainnya. Claue versi 2. 0 hadir dengan banyak fitur eksklusif termasuk:

  • Berbasis pada tema Luma.
  • Memenuhi semua standar Tema Magento
  • Peningkatan kinerja yang signifikan
  • Kompatibel dengan sebagian besar ekstensi pihak ketiga.
  • Sepenuhnya kompatibel dengan Magento 2.4.x

Versi lanjutan kedua ini benar-benar berbeda dari yang sebelumnya. Jadi, jika Anda menggunakan Claue versi 1 dan ingin memperbarui ke Claue versi 2, Anda hanya dapat membangun kembali situs web baru dan tidak memperbarui dari versi lama. Sekarang, mari kita kembali ke topik utama

Sebelum kita mendekati 2 solusi, kami menunjukkan contoh untuk menjelaskan bagaimana URL default dibuat dan pengetahuan prasyarat untuk menetas beberapa perbaikan. Misalnya. Kami membuat modul untuk Blog bernama Blog dan namespace-nya adalah MGS dengan bidang sederhana seperti

Indo judul keterangan

Di back-end, ketika kita membuat posting kita perlu memasukkan dua bidang, yaitu. Judul dan Deskripsi. ID postingan akan dibuat secara otomatis. Untuk menampilkan detail posting Blog kami mengandalkan router (dideklarasikan dalam file config.xml, kami mendeklarasikan blog), controller (kami beri nama index, jadi itu akan menjadi file IndexControler.php di folder controllers), action (kami sebut view , fungsi viewAction dalam file IndexControler.php) dan id postingan.

Jadi, URL default posting di front-end akan terlihat seperti ini:

http://domain.com/blog/index/view/id/1 (1 adalah ID posting)

Sejauh yang kami lihat URL ini sama sekali tidak baik untuk SEO, harus ditulis ulang agar menjadi URL friendly. Kembali ke tujuan utama, kami mengusulkan 2 metode untuk membuat URL friendly. Dan dengan cara apa pun Anda perlu menentukan URL yang Anda inginkan atau Anda akan mengikuti aturan umum untuk membuat URL (biasanya kami akan menggunakan judul posting, mengubah semua karakter menjadi gaya normal, mengganti ruang kosong dengan -, mis. Judul “ Cara menulis ulang url di Magento ” akan menjadi “ bagaimana-untuk-menulis ulang-url-di-magento.

Pada artikel ini kita akan menggunakan pendekatan definisi URL, oleh karena itu, kita akan menambahkan satu field lagi ke database di atas untuk menyimpan URL.

Indo judul keterangan url

Jadi, URL posting akan diisi.

Teknik pertama untuk menulis ulang URL

Gunakan fungsi penulisan ulang URL dari Magento, Anda bisa mendapatkan detail lebih lanjut di Katalog-> Manajemen Penulisan Ulang URL.

gambar1

Di sana Anda akan menemukan Magento membuat modul untuk menyimpan penulisan ulang URL untuk Kategori dan Produk. Magento juga memungkinkan Anda untuk menambahkan penulisan ulang URL dengan mengklik "Tambahkan Penulisan Ulang Url" untuk menambahkan penulisan ulang URL kustom dengan:

Jalur Target: jadilah URL postingan, mis. blog/indeks/tampilan/id/1

Jalur Permintaan : menjadi penulisan ulang URL yang akan Anda masukkan, mis. cara-menulis ulang-url-di-magento.html

Jelas kami tidak akan menambahkan informasi ini secara manual untuk menyimpan penulisan ulang URL. Sebagai gantinya kita akan menggunakan model url_rewrite dari modul inti (Mage::getModel('core/url_rewrite')) untuk menyimpan URL Blog di tabel core_url_rewrite setelah menyimpan data blog.

Setelah Anda menyimpan posting di Blog, Anda menggunakan kode berikut untuk menyimpan penulisan ulang URL:

Mage::getModel('core/url_rewrite')
    ->setIsSystem(true)
    ->setIdPath('blog/index/view/id/'.$blogId)
    ->setTargetPath('blog/index/view/id/'.$blogId)
    ->setRequestPath($url)
    ->save();

Catatan: $blogId adalah id blog setelah disimpan dan $url adalah URL yang Anda tentukan.

Jika Anda diingatkan, perintah di atas diterapkan ke posting baru, jika Anda ingin mengedit posting yang sudah ada, Anda perlu memperbarui catatan ini.

Teknik kedua untuk menulis ulang URL

Masih mengambil modul Blog dan bidang data yang sama seperti yang disebutkan di atas, Anda membuat posting di back-end termasuk data judul, deskripsi, url yang memadai.

Pergi ke config.xml (app/code/local/MGS/Blog/etc)

Dalam tag global:

<global>
…
</global>

Tambahkan kode berikut

<events>
    <controller_front_init_routers>
        <observers>
            <blog_custom_router>
                <class>MGS_Blog_Controller_Router</class>
                <method>initControllerRouters</method>
           </blog_custom_router>
        </observers>
    </controller_front_init_routers>
</events>

Di folder utama modul app/code/local/MGS/Blog Anda akan membuat folder lain bernama Controller di mana Anda kemudian membuat file bernama Router.php dengan konten di bawah ini:

<?php
class MGS_Blog_Controller_Router extends Mage_Core_Controller_Varien_Router_Abstract
{
 /**
 * Initialize Controller Router
 *
 * @param Varien_Event_Observer $observer
 */
 public function initControllerRouters($observer)
 {
     /* @var $front Mage_Core_Controller_Varien_Front */
     $front = $observer->getEvent()->getFront();
     $front->addRouter('blog', $this);
 }
/**
 * Validate and Match Cms Page and modify request
 *
 * @param Zend_Controller_Request_Http $request
 * @return bool
 */
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()
         ->setRedirect(Mage::getUrl('install'))
         ->sendResponse();
         exit;
     }
     $identifier = trim($request->getPathInfo(), '/');
     $condition = new Varien_Object(array(
         'identifier' => $identifier,
         'continue' => true
     ));
if ($condition->getRedirectUrl()) {
     Mage::app()->getFrontController()->getResponse()
     ->setRedirect($condition->getRedirectUrl())
     ->sendResponse();
     $request->setDispatched(true);
     return true;
 }
if (!$condition->getContinue()) {
    return false;
 }

 $collection = Mage::getModel('blog/blog')
 ->getCollection();

 if(count($collection)>0){
     foreach($collection as $post){
         if($identifier == $post->getUrl()){
             $request->setModuleName('blog');
             $request->setControllerName('index');
             $request->setActionName('view');
             $request->setParam('id', $post->getId());
             return true;
         }
      }
    }
  }
}

Potongan kode di atas berarti:
Misalnya, saat Anda mengetik jalur di browser:
http://domain.com/how-to-rewrite-url-in-magento.

Fungsinya akan membandingkan path: how-to-rewrite-url-in-magento.html dengan url di tabel data blog
Jika jalurnya mirip dengan bidang URL dari catatan apa pun di db, maka 4 baris perintah:

$request->setModuleName('blog');
$request->setControllerName('index');
$request->setActionName('view');
$request->setParam('id', $post->getId());

akan membantu sistem untuk memahami bahwa URL sesuai dengan router: blog, pengontrol: indeks, tindakan: tampilan dan id adalah id catatan yang memiliki URL yang identik dengan jalur di browser.

Misalnya. Rekam memiliki URL how-to-rewrite-url-in-magento.html dan id 1, lalu:

http://domain.com/how-to-rewrite-url-in-magento.html

sesuai dengan

http://domain.com/blog/index/view/id/1

Itulah dua solusi yang kami rekomendasikan untuk mengatasi masalah URL friendly di Magento . Kami harap Anda merasa terbantu. Kami sangat menghargai komentar Anda dan kontribusi lebih lanjut untuk artikel ini.

Terima kasih banyak untuk waktu Anda!

Tim dukungan Magesolution !