URL重写以从显示的URL中删除我的控制器名称

时间:2011-01-31 22:39:01

标签: mod-rewrite url-rewriting codeigniter-url

我有这个网站

  

http://cjbuilders.info/welcome/home

并且所有链接都以

开头
  

http://cjbuilders.info/welcome

如何使用mod_rewrite删除

  

/欢迎/

从网址

?这应该是一个简单的,但我很难与mod_rewrite。

2 个答案:

答案 0 :(得分:1)

这应该有效,IIRC:

RewriteRule ^/welcome/(.*)$ /$1 [R]

然而,猜测一下这里发生了什么,如果这个前缀的原因类似于Java应用服务器在名为“welcome”的上下文中部署应用程序,那么更好的解决方案不是重写URL而是修复后端应用服务器以使其具有空上下文,即在/ welcome /./ / p>中提供/而不是/ welcome

这是因为应用服务器可能希望生成指向其应用的其他视图的链接,并将重新插入“欢迎”:这会变得很麻烦,并且意味着访问时页面上的所有链接都会获得HTTP重定向(例如,通过搜索引擎)。代理apache服务器无法解析HTML并告诉应该何时删除“welcome”,因此最好修复首先编写链接的服务器。

答案 1 :(得分:1)

你知道CodeIgniter's URI Routing吗?将它添加到routes.php配置文件中,它应该可以正常工作:

$route['home'] = 'welcome/home';