/ / Codeigntier: przekierowanie w pliku config / routes.php? - kodigniter, trasy, przekierowanie adresu URL

Codeigntier: przekierowanie w pliku config / routes.php? - kodigniter, trasy, przekierowanie adresu URL

Aktualizuję stronę internetową i mam kilka starych URL-i, które muszą zostać przekierowane do ich nowych odpowiedników. Chcę to zrobić po stronie serwera (zamiast z .htaccess)

Byłoby fajnie, gdyby w moim config / routes.php mógłbym zadeklarować coś takiego:

$route["old_url_1"] = redirect("/new/url/1", "location", 301);
$route["old_url_2"] = redirect("/new/url/2", "location", 301);
$route["old_url_3"] = redirect("/new/url/3", "location", 301);

Oczywiście to nie działa, ale czy jest coś takiego jak to możliwe, tj. Zachowaj ten kod w moim pliku tras (bardziej logicznym) lub czy muszę iść i skonfigurować funkcje w jakimś kontrolerze?

Dzięki.

Odpowiedzi:

1 dla odpowiedzi № 1

Tak, musisz stworzyć coś (metoda na kontrolerze), które przekieruje przeglądarkę za pomocą kodu 301. Coś takiego:

<?php

if (!defined("BASEPATH"))
exit("No direct script access allowed");

class Redirectme extends MY_Controller {

public function index($url=false) {
if($url===false)
redirect("/");
redirect("/new/url/".$url,"location",301);
}

}

?>

i dodaj do route.php

$route["old_url_(:any)"] = "redirectme/index/$1";

W każdym razie, najlepszą praktyką jest przekierowanie przez .htaccess (ponieważ nie wywoła on nawet php-modułu z serwera WWW).