【问题标题】:CodeIgniter and Javascript url-rewriting clashCodeIgniter 和 Javascript url 重写冲突
【发布时间】:2012-10-09 02:57:07
【问题描述】:

我的项目是在 CodeIgniter 中设置的。为了清理 CI 的 url,我在页面的 htaccess 中添加了一个 RewriteRule,它删除了丑陋的“index.php”:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

此规则重写:

https://baseurl/index.php

https://baseurl/

现在, 我还想使用 javascript 深度链接,因为该项目严重依赖 Ajax 页面刷新。深层链接如下所示:

https://baseurl/#/deeplink

问题是:重写规则删除了我美丽注入的深层链接并将用户重定向到根站点... 如何在不删除硬页面刷新时的深层链接的情况下摆脱 index.php?

谢谢!

戴夫·蒂默曼

【问题讨论】:

  • 你试过 CodeIgniter 文档推荐的 htaccess 了吗? codeigniter.com/user_guide/general/urls.html我现在无法测试它,但我想它会解决你的问题......
  • 奇怪的是,那些重写规则根本不起作用!

标签: javascript .htaccess mod-rewrite


【解决方案1】:

片段#/deeplink 永远不会发送到服务器,URL 片段仅保留在客户端(浏览器)上。它永远不会作为请求的一部分发送到服务器。请求:

https://baseurl/#/deeplink

看起来与index.php 脚本没有什么不同:

https://baseurl/

不确定您是如何开始读取服务器上的片段的。

【讨论】:

  • 我明白了。我猜 URL 重写和 Jquery 深度链接并没有真正结合在一起......欢迎任何其他建议。
猜你喜欢
  • 2016-12-11
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 2015-04-15
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多