CodeIgniter和Javascript url-重写冲突

时间:2012-10-18 15:29:54

标签: javascript .htaccess mod-rewrite

我的项目是在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 deeplinking,因为该项目在很大程度上依赖于Ajax页面刷新。深层链接看起来像这样:

https://baseurl/#/deeplink

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

谢谢!

Dave Timmerman

1 个答案:

答案 0 :(得分:1)

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

https://baseurl/#/deeplink

index.php脚本相比没有区别于:

https://baseurl/

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