Güncelleme: Drupal sayısı # 1796596 , Redirect 1.0-rc2 (Haziran 2015) itibariyle işlendi. Bu sorun için doğru çözüm, Redirect modülünün en son kararlı sürümüne yükseltmek ve ardından veritabanı güncellemelerini çalıştırmaktır. Sahip olduğunuz dairesel yönlendirmeler güvenle temizlenir.
Bu sorun, yönlendirme modülündeki bir hata nedeniyle ortaya çıktı. Bir sayfanın URL'sini değiştirerek (veya yalnızca pathauto kullanıyorsanız başlığını) ve ardından eskisi gibi değiştirerek tetiklersiniz.
Örneğin, "şirket" adında bir sayfam olduğunu ve başlığını "Şirketimiz" olarak değiştirdim (URL takma adını şirketimize değiştirdi). Sonra ilk yolu tercih ettiğime karar verdim, bu yüzden düğümü tekrar düzenleyip başlığı tekrar "Şirket" olarak değiştirdim. Bu noktada " Hata, bu istek sonsuz bir döngü oluşturmaya çalıştı. Bu tür şeylere izin vermiyoruz. Biz profesyonel bir web sitesiyiz! " Şirket sayfasında görünmeye başlayacaktır.
Sizin için en kolay olana bağlı olarak bunu düzeltmenin üç yolu vardır. Yukarıdan aşağıya zorluk / cesaret içinde değişirler.
Drupal / PHP yöntemi
Konuyla ilgili uzun bir Drupal hatası var: Sayı # 1796596 ve 124 numaralı yorumda sorunu çözen iyi bir çalışma yaması var .
Umarım bu düzeltme yakında indirilecek Redirect modülüne girecektir. Ancak bu cephede ilerleme kaydedilmeden bir yıldan fazla bir süre geçti.
SQL yöntemi
Sorunun en hızlı çözümü, veritabanına bir SQL sorgusu ile aşağıdaki gibi bir şeydir. DİKKATLİ OLUN ve bu yöntemi yalnızca ne yaptığınızı biliyorsanız deneyin - önce sitenin bir geliştirme kopyasında deneyin ve bir yedeğiniz olduğundan emin olun ve geri almanız gerektiğinde değişiklikleri hemen test edin. Ekstra dikkatli olun ve i18n kullanıyorsanız ilk sorguyu çok iyi test edin ... Nelerin silineceğini göstermek için ilk sorguyu ve aslında silme işlemini yapmak için ikinci sorguyu çalıştırın.
--Show records to be deleted:
SELECT r.rid, r.language, r.source, r.redirect
FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
--Delete redirects shown in above query:
DELETE r FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
Yamaları nasıl uygulayacağınızı veya SQL sorgularını nasıl çalıştıracağınızı bilmiyorsanız, sorunu manuel olarak düzeltmeniz gerekir. Endişelenmeyin, bu aslında oldukça kolaydır (ancak diğer yöntemlere kıyasla zaman alıcıdır):
Manuel Yöntem:
Uyarı mesajının görüntülendiği sayfaların her biri için:
- Sayfayı düzenleyin
- Düzenleme formunun en altına gidin
- Sayfanın ana URL'sini not edin. "URL yolu ayarları" altında gösterilir, örneğin "Takma ad: şirket", sayfanın URL'sinin "şirket" olduğu anlamına gelir. Bölümünü ziyaret etmek ve emin değilseniz URL takma adını onaylamak için "URL Yolu Ayarları" nı tıklayabilirsiniz.
- Şimdi "URL yönlendirmeleri" ni tıklayın. Geçerli sayfaya yönlendirmeler gösterilecektir. 3. adımda not ettiğiniz URL takma adıyla aynı olan en az bir yönlendirme olacaktır. Bu listedeki birden fazla yönlendirme URL takma adıyla eşleşebilir.
- URL takma adıyla aynı olan tüm yönlendirmeleri silin. Bunlar, döngü ve hata iletisinin görüntülenmesine neden olan sorun verileridir.
- "URL yönlendirmeleri" altında, sorunlu sayfanın URL yolu ayarları altındaki URL takma adıyla tam olarak eşleşen başka yönlendirme olmadığında, hata mesajı kaldırılır.