Routing in CodeIgniter for (:any)

I'm trying to make my CodeIgniter application work similarly to WordPress.

I want to be able to make these kind of URLs:

http://www.example.com/my-post-example

http://www.example.com/new-headline-here

http://www.example.com/i-love-stackoverflow

My routing:

$route['(:any)'] = "core/index/$1";

Which will call my Core controller and pass the page name into the index function.

I then lookup in my database for the page name and display the page to the user. So far so good.

However, there will be times when I want to call another controller. For example:

http://www.example.com/admin/edit_page/3

http://www.example.com/admin/settings

Now I assume my route will just grab all these rules and send them into my Core controller. Is there a way to make an exception for certain pages? Or is it a good idea to do this check inside my Core controller.

For example,

if ($page not in DB) {
   // Call controller/method
}

This seems a little redundant since I just want CodeIgniter to handle this.


The routing rule you using it is OK for your purpose.

If you use http://www.example.com/admin/edit_page/3 this link it will send you admin controller and edit_page method.It will not use routes any rule.

However you will get one problem if your link looks like this

http://www.example.com/my-post-example/test

It will try to go my-post-example controller and test method.

Again http://www.example.com/admin will use routes any rule, means it will redirect your to core controller instead of admin/index . In that case your url should be http://www.example.com/admin/index

Finally If you call your other link with controller/method name it will be OK using your any rule

链接地址: http://www.djcxy.com/p/96332.html

上一篇: 如何在Magento2的客户表中添加自定义列?

下一篇: 在CodeIgniter中为(:any)