【问题标题】:url rewriting using .htaccess?使用.htaccess 重写url?
【发布时间】:2013-05-20 19:00:05
【问题描述】:

我正在使用 codeigniter。有一个url模式:localhost/mysite/application/assets/projects/projectname

projectname 部分是动态的。现在我想将该网址重写为:localhost/mysite/projectname

是否可以使用.htaccess?如果是,那将是什么代码。

【问题讨论】:

  • 在创建 url 时确实应该遵循 CI 指南。
  • 实际上 projectname 是一个文件夹,其中包含一个新项目,需要在 localhost/mysite/projectname 被命中时自动加载。 ci 指南如何提供帮助?能具体一点吗?
  • 如果你关注 CI,assets 将是一个 controller,projects 将是一个 action 在该控制器中,projectname 将是一个 param 用于该操作。作为参数,您可以轻松获取它并查询数据库。当你遵守规则时,这真的很容易。不是当你不这样做的时候。
  • 我认为您的意思是:localhost/mysite/controller/projects/projectname 并使用该项目名称参数我重定向到该文件夹​​。但我真正想要的是:包含项目的文件夹不依赖于 codeigniter,链接将是公开的,因此任何人都可以通过点击 url 浏览该项目:localhost/mysite/projectname

标签: php codeigniter .htaccess url-rewriting


【解决方案1】:

试试这个.htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond $1 !^(index\.php|indexcp\.php?|resources|robots\.txt)
RewriteRule ^([A-Za-z0-9_/.-]+)$ index.php?$1 

RewriteRule ^(CSI) index.php?/CSI
AddType text/x-component .htc

编辑

曾经尝试过这种方式

RewriteRule ^(/application/assets/projects)$ http://localhost/mysite/$1 [R,NC,L]

【讨论】:

  • 它没有解决我的问题。我想要的是用(/)替换一小部分 url。即 /application/assets/projects/ 到 /
猜你喜欢
  • 2011-04-03
  • 2014-12-23
  • 2015-01-25
  • 1970-01-01
相关资源
最近更新 更多