我对CI很新,所以我想知道下面列出的一个功能将通过CI路由器完成,然后如何?
特征:
Q1.我需要以这样的方式显示我的用户个人资料mysite.com/johhn mysite.com/raju.radha
mysite.com/johhn1.
Q2.其他URL是mysite.com/photo/3434,mysite.com/album/3443等等等等.
我知道这可以通过使用来实现$route.对于Q2,这是解决方案
$route['photo/:num'] = "photo/photo_list";
$route['album/:num'] = "album/album_list";
Run Code Online (Sandbox Code Playgroud)
Q1的解决方案是什么?
提前致谢 !!!
frameworks codeigniter url-rewriting url-routing codeigniter-url
我目前在我的CodeIgniter路由文件中有这个.它将任何带URI的地图映射api/controller/function到controller/api_function.
$route['api/(:any)/(:any)/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4/$5/$6';
$route['api/(:any)/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4/$5';
$route['api/(:any)/(:any)/(:any)/(:any)'] = '$1/api_$2/$3/$4';
$route['api/(:any)/(:any)/(:any)'] = '$1/api_$2/$3';
$route['api/(:any)/(:any)'] = '$1/api_$2';
Run Code Online (Sandbox Code Playgroud)
如您所见,这不是很有效.我需要一个不同的路线,具体取决于提供的参数数量.有没有办法自动传递所有参数?所以假设,我正在寻找像......
$route['api/(:any)/(:any)/unlimited parameters'] = '$1/api_$2/unlimited parameters';
谢谢!
我多年来一直在编写PHP代码.现在我有很多可重复使用的模块 - 至少对我来说.典型的老式开发者:D.但现在几乎每个人都使用烘焙的即时框架,而且我的模块不再可重复使用 - 在某种程度上.大多数当前着名的框架,如CI,Zend,Cake等,以及应该更简单的微框架,如Fat-free,Silex,MicroMVC等,都采用称为URL路由/ URL重写等方法.
但是......你认为这种奇特的 URL路由真的是必要的吗?
让我们考虑一下:
你怎么看?我们应该继续使用那种花哨的 URL路由吗?或者我们最好用[更简单的]请求参数回到[web]性质?任何回复赞赏.
我在VS2012 尝试FriendlyUrls.我使用自述文件和Hanselman的帖子作为指南.我将以下内容添加到Application Start,但VS告诉我没有声明RouteConfig.
RouteConfig.RegisterRoutes(RouteTable.Routes)
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索但没有找到答案.我导入了system.web.routing.如何更正此错误消息
如何将网址路由到.cshtml页面?例如www.example.com/view/2 - > view.cshtml
我不想使用MVC,最好不要使用控制器代码和其他东西复杂化.只是路由尽可能简单.
我正在寻找有关如何进行非常基本的 php 路由的教程或解释。
例如,当我访问像 mywebsite.com/users 这样的链接时,我想运行路由类的 get 方法来提供数据,就像 laravel 那样。
Route::get('users', function()
{
return 'Users!';
});
Run Code Online (Sandbox Code Playgroud)
有人可以解释如何做到这一点或向我提供更多信息吗?
通常如果我想将用户发送到特定状态,我只是这样做:
$state.go('state_name');
$state.transitionTo('state_name');
Run Code Online (Sandbox Code Playgroud)
这通常会带给他们/state_name.但是,我有一个特定的状态,我试图将它们发送给它有一个变量/state_name/:variable,我似乎无法弄清楚如何将它们重定向到/state_name/whatever_I_choose.
任何人都可以帮我解决这个问题吗?我ui-router也在使用.
如下面的代码所示,我使用apache来服务我的Perl Web服务器.我需要Perl为我的客户端提供多条路由,如图所示my %dispatch.如果我找到一个,我肯定其余的会非常相似.如果我们查看我的子例程sub resp_index,如何修改它以链接到我的root:目录中的index.html文件/var/www/perl?
/var/www/perl/perlServer.pl:
#!/usr/bin/perl
{
package MyWebServer;
use HTTP::Server::Simple::CGI;
use base qw(HTTP::Server::Simple::CGI);
my %dispatch = (
'/index.html' => \&resp_index,
# ...
);
sub handle_request {
my $self = shift;
my $cgi = shift;
my $path = $cgi->path_info();
my $handler = $dispatch{$path};
if (ref($handler) eq "CODE") {
print "HTTP/1.0 200 OK\r\n";
$handler->($cgi);
} else {
print "HTTP/1.0 404 Not found\r\n";
print $cgi->header,
$cgi->start_html('Not found'),
$cgi->h1('Not found'),
$cgi->end_html;
}
}
sub …Run Code Online (Sandbox Code Playgroud) 这是有关ASP.NET Core路由的文章:https : //docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/routing
很简单。我可以指定这样的路线:
app.UseMvc(routes =>
{
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)
或者,我可以使用以下属性标记我的控制器和动作:
[Route("api/[controller]")]
public class TestController : Controller
{
[HttpGet("{id}")]
public async Task<string> Get(string id)
{
return "test";
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我尝试将控制器放入具有属性的外部库中,并从我的主服务引用该程序集,当我打入Url时,调用不会路由到控制器。我猜想我需要告诉ASP.NET Core扫描哪些程序集,但是我不知道如何。我正在使用此网址BTW:http:// localhost:5000 / api / test / a。
我正在使用Ruby on Rails创建一个网站,引用Airbnb,我发现很难制作以下网址结构.
https://www.airbnb.com/help/article/767/what-is-the-resolution-center
在此URL中,似乎有一个文章资源在帮助下,因此767是文章的ID.此外,在ID之后,URL中有页面的名称.
scope '/help' do
resources :articles
end
Run Code Online (Sandbox Code Playgroud)
通过这样做,我能够路由到这一部分.
/帮助/用品/ 'PAGE_ID'
但我不知道该怎么做.
我生成了文章模型(标题:字符串,内容:文本),我猜测每篇文章(标题和内容)都是根据id显示的.
这是我的问题.
谢谢.
url-routing ×10
codeigniter ×2
frameworks ×2
php ×2
angularjs ×1
apache ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
c# ×1
conceptual ×1
javascript ×1
laravel ×1
parameters ×1
perl ×1
razor-2 ×1
routes ×1
routing ×1
ruby ×1
uri ×1
url ×1
vb.net ×1