Super, o to mi chodziło. Dzięki wielkie! Tylko jest jeden bardzo poważny problem za każdym razem jak wpiszę adres np.
http://localhost/index.php?plik=26 ładuje się strona główna. Problem leży po stronie adresu z index.php :/ Zapewne winę ponosi linijka z zawartością
RewriteRule ^.*$ index.php [NC,L]
w pliku .htaccess . Niestety, ale wymazanie linijki z plik nie wchodzi w grę bo strona się 'sypie'. Próbowałem kilku sposobów aby to poradzić sobie z tym, ale niestety nie udało się ;/ Dlatego proszę jeszcze o pomoc w rozwiązaniu tego problemu.
Sprawdziłem dla pewności czy kod działa dla innej formy, aby się upewnić czy nie był to błąd po mojej stronie. Także jeżeli ustawię ścieżkę starych adresów np. w taki sposób:
old.type = "Zend_Controller_Router_Route_Regex"
old.route = "index/plik/(\d+)"
old.defaults.module = "default"
old.defaults.controller = "file"
old.defaults.action = "old"
old.map.1 = "plik"
old.reverse = "index/plik/%d"
To wszystko ładnie przekierowuje, ale niestety adresy typu
http://localhost/index/plik/123 nie bardzo mi się nada.
Z góry dziękuję za pomoc w rozwiązaniu problemu.
#### EDIT ####Problem rozwiązany. Należało zawartość z akcji old przenieść do akcji index kontrolera IndexController. Aha, naturalnie robienie routingu do starych adresów w tym przypadku nie ma sensu.
Dziękuje amii za pomoc w rozwiązaniu problemu i za poświęcony czas wszystkim tym, którzy czytali mój problem, ale po prostu nie wiedzieli jak pomóc.
W woli ścisłości to aby jeszcze nie wyskakiwały nam błędy to zawartość w akcji index w kontrolerze IndexController powinna wyglądać tak:
public function indexAction()
{
$id = $this->_getParam( 'plik' );
if( $id ) {
// sprawdzenie czy rzeczywiście istnieje taki plik w bazie, jeśli nie to przekieruj na stronę błędu
// pobranie $tytul pliku o zadanym $id
$this->_redirect( '../file/'.$tytul.'/'.$id,
);
}
}
Pozdrawiam