我是codeIgniter的新手。
我非常关注我开发的网站上的网址。是否有可能创建这些类型的网址?我开发的网站通常都有一个集成的管理界面,并且在斜线后面添加了 new,edit或delete添加到网址的末尾。
以下是一些假设的示例(一个带有管理员网址):
顶级网页(无尾随斜线)
site.com/about
site.com/contact
site.com/contact/edit
部分索引列表(列表有尾部斜杠)
site.com/blog/
site.com/products/
site.com/products/edit
部分页面(列表有尾部斜杠)
site.com/blog/first-post
site.com/products/best-product
site.com/products/new
site.com/products/best-product/delete
部分类别
site.com/blog/code-questions/
site.com/products/red-products/
site.com/products/red-products/delete
我看到的第一个问题是将一个带有尾部斜杠的URL发送到另一个控制器,然后没有一个。由于您无法在路由文件中添加它们。例如,对于顶级页面,我如何知道调用Pages控制器?如何区分段索引列表?我无法在routes.php中添加尾部斜杠!
site.com/about
site.com/blog/
与节页面和类别相同。
通常我过去使用.htaccess文件完成了这项工作。
我在自己的应用程序中如何为url构建htaccess文件的一些示例
RewriteRule ^new$ index.php?static&new
RewriteRule ^edit$ index.php?edit
RewriteRule ^([a-z0-9\-]+)$ index.php?static&post=$1
RewriteRule ^([a-z0-9\-]+)/edit$ index.php?static&edit=$1
RewriteRule ^([a-z0-9\-]+)/$ index.php?section=$1
RewriteRule ^([a-z0-9\-]+)/new$ index.php?section=$1&new
RewriteRule ^([a-z0-9\-]+)/([a-z0-9\-]+)$ index.php?section=$1&post=$2
RewriteRule ^([a-z0-9\-]+)/([a-z0-9\-]+)/$ index.php?section=$1&category=$2
无论如何使用codeIgniter执行此操作?我是否应该在控制器生成的URL上重写规则?是否可以使用routing.php文件执行此操作? 如果codeIgniter没有这样做,你能建议一个可以的框架吗?
此外,如果在绑定到控制器类名称时如何在url中使用连字符?
答案 0 :(得分:2)
CodeIgniter有一种很好的处理URI路由的方法(http://codeigniter.com/user_guide/general/routing.html)。
默认情况下,如果您使用CodeIgniter自己的.htaccess(http://codeigniter.com/user_guide/general/urls.html),则所有请求都会生成漂亮的段。
您可以轻松使用CodeIgniter的routing.php文件来生成您所追求的URL。请参阅http://codeigniter.com/user_guide/上非常容易理解的文档。