Herkese kolay gelsin Framework kullanarak sistem geliştiriyorum ancak şöyle bir sorunum var
xxxxx.com/home yazdığımda home controller tetikleniyor bunda sıkıntı yok
Ancak;
Googleda reklam çıktığımda google site bağlantısının sonuna ?gad_source=1 şeklinde bir tag ekliyor
xxxxx.com/?gad_source=1 şeklinde site açıldığında da sistem controller tetiklemeye çalıştığı ve bulamadığı için 404 hatası veriyor bunu nasıl düzelteceğim
kolay gelsin
MVC yapısı ve tetiklenen controller hakkında
4
●136
- 04-03-2024, 10:34:40
- 04-03-2024, 10:43:55Bu durumu düzeltmek için Laravel'in yönlendirme (routing) mekanizmasını kullanabilirsiniz. ?gad_source=1 gibi URL parametreleri, Laravel'in standart yönlendirme mantığına uymayabilir ve istenmeyen sonuçlara neden olabilir. Bu nedenle, bu tür URL parametrelerini kontrol etmek ve bunları işlemek için bir özel yönlendirme yapabilirsiniz.
Öncelikle, bu URL parametresini kontrol eden ve uygun bir işlem gerçekleştiren bir yönlendirme tanımlayabilirsiniz. Örneğin, bu parametre varsa ana sayfaya yönlendirme yapabilirsiniz. Bunun için routes/web.php dosyasına aşağıdaki gibi bir yönlendirme ekleyebilirsiniz:
use Illuminate\Support\Facades\Route; Route::get('/', function () { // ?gad_source=1 parametresi varsa ana sayfaya yönlendir if (request()->has('gad_source')) { return redirect('/home'); } // Diğer durumlarda ana sayfayı görüntüle return view('welcome'); });Bu kod, ana dizine yapılan istekleri kontrol eder. Eğer istek ?gad_source=1 parametresini içeriyorsa, /home yoluna yönlendirir. Aksi halde, normal şekilde ana sayfayı görüntüler.
Bu şekilde, istenmeyen URL parametreleri nedeniyle oluşabilecek 404 hatalarını önleyebilirsiniz. Ancak, bu yaklaşımın SEO açısından etkilerini de göz önünde bulundurarak, yönlendirmeleri doğru şekilde yapmanız önemlidir. - 05-03-2024, 05:25:33request_uri yi ? parçladıktan sonra 0 cı arrayı request_uri olarak kullanman gerekir.
$exp = explode('?', $_SERVER['REQUEST_URI']); $request_url = $exp[0];eğer ? sonradaki query string gerekiyorsa da
if(isset($exp[1]) && !empty($exp[1])){ $query_string = parse_str($exp[0]); }query_string çıktısı array olur, $query_string['gad_source'] gibi ulaşabilirsin.
kendin yapında router kullanmak istersen de github da fastroute ve bramus router var ikiside iş görür - 05-03-2024, 11:10:03Kullandığım framework laravel değil,trgino adlı üyeden alıntı: mesajı görüntüle
Bu yaklaşım aklıma geldi ama önce autoloader dosyaları yüklediği ve orada ilk önce controller tetikleneceğini düşünerek çalışacağını düşümemiştim çalıştı teşekkürler