Öncelikle merhaba, geçtiğimiz günlerde php tabanlı içerisinde 10bin adet haber bulunan bir siteyi wordpresse başarılı bir şekilde aktardım. Fakat sitenin önceki googleda bulunan kayıtlı sayfaları ile wordpresste bulunan yazıları bir türlü eşleştiremedim. Googledan gelen bir kullanıcı habere tıkladıgında her zaman 404 ekranı ile karşılaşıyor. 3-4 gündür bu sorun ile boğuşmama rağmen bir çözüm bulabilmiş değilim.
Çözümü .htaccess ile çözmeye çalıştım çok yaklaştım fakat bazı haberlerde hata aldım sanırım kullandıgım yöntemin geliştirilmesi gerekiyor bunun içinde yardımlarınızı bekliyorum.
Detaylı olarak sorunum;
Sitenin php sürümünde google'da Haberin linki https://example/deneme-yazi-1231.html olarak kayıtlı yani ilk önce başlık, sonra yazı idsi, ardından .html etiketi.
Ben siteyi wordpresse geçirince sayfanın urli şuna dönüştü https://example/deneme-yazi/ Haliyle googledan habere tıklayan kullanıcı 404 ile karşılaşıyor ve sistemdeki yazıyı bulamıyor.
Bazı regex yöntemleriyle bunu düzeltmeyi başardım örneğin https://example/deneme-yazi-1231.html linkine tıklayan kullanıcı (.*?)-d+.html regexteki bu kodun yardımıyla .html etiketi ve id yi silerek normal sayfaya yönleniyor. Fakat sistemde sayfalar 3 farklı yöntem ile kayıt edilmiş bazılarının urlinde sadece yazının başlığı, bazılarında yazının başlığı ve idsi, bazılarında yazının başlığı, yazının idsi ve .html etiketi mevcut. Hal böyle olunca (.*?)-d+.html bu kod biraz işlevsiz kalıyor çünkü bazılarında .html etiketi olmadıgı için yine 404 hatası alıyorum.
Unutulmaması gereken bir diğer konu ise bazı haberlerin başlığından 15 bin dolarlık dava gibi sayıların mevcut olması. Yani regexe, urlde bulunan tüm sayıları sil diyemeyiz bir koşulla birlikte urlin sonundaki sayıları silmeli.
Umarım derdimi detaylı bir şekilde anlatabilmişimdir, bu konudaki görüşlerinizi, fikirleriniz ve yardımlarınızı bekliyorum. Düşük olmak ile birlikte bir ücrette ödeyebilirim.
301 .Htaccess Yönlendirme Problemi +
5
●120
- 19-10-2022, 17:42:04
- 19-10-2022, 17:53:02Merhaba.
Regexte "şu işaret ile '-' başlayıp .html ile biten kısmı" hedefleyebilirsiniz. Bu sorununuzun en etkili ve hızlı çözümü .htaccess'ta regex ile toplu yönlendirme yapmak.
Algoritma ve programlama temeliniz varsa ilgili regex'i yazabilmeniz için gerekli kaynaklar burada:
https://stackoverflow.com/questions/...aracter-string
https://www.regextutorial.org/regex-...racter%20range.
https://regexone.com/lesson/matching_characters - 19-10-2022, 17:55:57Yönlendirmeniz için çok teşekkür ederim deneyeceğim fakat şu kısımda patlar gibime geliyor "Fakat sistemde sayfalar 3 farklı yöntem ile kayıt edilmiş bazılarının urlinde sadece yazının başlığı, bazılarında yazının başlığı ve idsi, bazılarında yazının başlığı, yazının idsi ve .html etiketi mevcut. Hal böyle olunca (.*?)-d+.html bu kod biraz işlevsiz kalıyor çünkü bazılarında .html etiketi olmadıgı için yine 404 hatası alıyorum."Empat adlı üyeden alıntı: mesajı görüntüle
- 19-10-2022, 18:14:08Patlamaz. Sadece daha komplike bir regex yazmanız gerekir. Regex'te conditions konusunu araştırın.
https://www.regular-expressions.info/conditional.html
https://stackoverflow.com/questions/...h-if-condition
https://www.rexegg.com/regex-conditionals.html - 19-10-2022, 18:22:08Hocam 12K içeriği bulunan bir siteyi tebilisimden wordpresse geçirmiştik. siteadi.com/kategori/konubasligi-id.html şeklindeydi.
wordpresste /kategori/ kaldirdik ve googleden gelen hitlerde aynı konuya yonlendırmesi için WP 404 Auto Redirect to Similar Post bu eklentıyı kurmustuk.
Eklentı konu adına gore yonlendırmeyı yapıyor denemenızı onerırım 404 ıle karsılasmazsınız. Herhangi bi hit veyahut sıralama kaybı olmamıstı o donem. - 19-10-2022, 18:23:00Çok teşekkür ederim deneyeceğimRaXeS adlı üyeden alıntı: mesajı görüntüle