GÜNCELLEME: Bakılırsa, aşağıda benim üretim sunucusunda bir önbelleğe alma sorununa neden olur. Düşünceli cevaplar katkıda bulunan herkese teşekkürler.
Ben gibi bir url alır php sayfada basit bir işlevi vardır:
http://myurl.com/mypage.html?param1=value1
ve dönüştürür:
http://myurl.com/searchpage.html?param1=value1
Bütün o sayfa.html kısmını takas yapar.
Bunu yapmak için, aşağıdaki kullanın:
$currentUrl = $this->getCurrentUrl(); // Grabs the current url, i.e 'http://myurl.com/mypage.html?param1=value1' // Derive a search pattern from the current url $pattern = "/" . str_replace(array("/", ".", "-"), array("\\/", "\\.", "\\-"), $currentUrl) . "/"; // get rid of the 'mypage.html' $newUrl = preg_replace($pattern, 'http://myurl.com/', $currentUrl); // replace the question mark with the correct page $newUrl = str_replace("/?", "/searchpage.html?", $newUrl);
Yukarıdaki kod tam kodu değil ama iyi bir temsildir. Bu bir sunucu üzerinde güzel çalışıyor, ancak ben üretime bastığınızda, preg_replace çalışmaz. Ben aslında str_replace kullanmaya çalıştı. Ayrıca ancak üretim sunucusunda, benim yerel kalkınma makinede çalışır.
Ben URL değişkenleri doğru geliyor doğruladı. Herhangi bir fikir?