Bazı statik olanların dışında bir kontrolöre her uri aramaları yönlendirmek için?

3 Cevap php

Hey, I'm using codeigniter and want to make my portal a bit more SEO friendly. I have a controller (articles) which handles every article on my portal. The URL looks like this:

example.com/articles/category-sub-category/article-name

Ben her çağrıyı kolları denetleyicisi eylem gizlemek benim index.php gizlemek için mod rewrite modülünü kullanarak, ve CodeIgniter yönlendirme ediyorum.

Ben de makaleleri gizlemek istiyorsanız, ama bunu gizlemek durumunda, her çağrı makaleleri denetleyicisi gider, ve benim URL bu gibi bakmak istiyorum çünkü, ben istediğim bu değil:

example.com/category-sub-category/article-name

Ben routes.php içinde sıradanifade yönlendirme kuralları ile denedim ama doğru yapmak için hiçbir yol bulundu.

3 Cevap

CI yönlendirme özelliğini kullanarak, bunu gibi her kategori için bir rota belirlemek zorunda olurdu ..

$route['category_one/:any'] = 'articles/category/category_one';
$route['category_two/:any'] = 'articles/category/category_two';
//.. and on and on until you've routed them all

Sen Articles denetleyicisi bir category yöntemi olması ya da başka da çıkış yolu elden alacağı her kategori için bir yöntem oluşturmak gerekiyor olurdu.

En azından CodeIgniter ile, sizin url articles kısmını tutmak ve bu gibi bunu yaparken daha iyi olurdu:

$route['articles/(:any)'] = 'articles/category/$1';

Ancak yine de, sizin denetleyicisi category yöntemini oluşturmak gerekir.

ok! sorun çözüldü!

I've found the solution for my problem, on following site: http://bizwidgets.biz/web-design/codeigniter-routes-trick-removing-controller-names-from-the-uri-to-keep-urls-short/

$route['^(?!account|about|showcase|etc).*'] = "articles/read/$0";

Bu hat benim yazılar denetleyicisi olmayan her denetleyici isteklerini verir, bu yüzden var istedim i adresler var :)