【问题标题】:CodeIgniter - Routing doesn't workCodeIgniter - 路由不起作用
【发布时间】:2012-11-14 16:35:30
【问题描述】:

我在 CodeIgniter 中遇到了路由问题。

我可以使用http://localhost/MySite 访问我的默认控制器(登录页面)。所以我觉得路由配置不错。

当我提交登录页面的登录表单时,我收到 Not found 错误 404 并且显示的 URL 是 http://localhost/MySite/login?

当我在 url 中插入“index.php”(http://localhost/MySite/index.php/login) 时,它可以工作。在文档中写到我必须在.htaccess 中添加一些行:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]

这个 URL 路由有什么问题?

【问题讨论】:

  • application/config/config.php中的$config['index_page'] = '';有没有填空
  • 我在application/config/config.php 中有$config['index_page'] = '';

标签: codeigniter url routing


【解决方案1】:

试试我现在在我的项目中使用的这个东西......

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

【讨论】:

  • 谢谢。但它不起作用。我给你一个准确的:目录结构:Apache的文档根目录下的一个目录(项目名称:MySite)。在此目录下:'system' 用于 CodeIgniter,'application' 用于代码,'assets' 用于 javascript、图像和 css 文件。
  • 我也使用相同的项目名称->应用程序,系统,css,js,图像,字体,.htaccess,index.php文件和文件夹......对我来说我没有遇到任何问题............
  • 我在自己的电脑上试过这个(我现在在工作的那个),它可以工作。我有一个很大的问题:为什么“default_controller”路由有效,而遵循相同机制的表单操作却无效? (为什么不在工作时在家工作?不一样的操作系统,不完全相同的 apache 和 php 配置......)。谢谢你的回答......如果你有另一个想法...... ^_^
  • 我也是这个领域的新手............如果你从我的回答中找到任何帮助,请不要去Upvote............
  • 我不会忘记...我在家里:工作就像一个魅力!呜呜!!
【解决方案2】:

请试试这个..

RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1

希望一切顺利。

【讨论】:

  • 并将空字符串分配给您的“application/config”目录中的 $config['index_page']
  • 嗅探...不行。当它是一个表单操作时,似乎 .htaccess 被忽略了......如何确保 .htaccess 被读取?
  • 我总是在我的应用程序中这样做。我总是在表单操作中使用 base_url() 而从不使用 index.php。总是好的。
  • 好主意!我会这样做,然后回去给你一个结果。
猜你喜欢
  • 2011-11-07
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
相关资源
最近更新 更多