我的项目是在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答案 0 :(得分:1)
片段#/deeplink
永远不会发送到服务器,URL片段仅保留在客户端(浏览器)上。它永远不会作为请求的一部分发送到服务器。请求:
https://baseurl/#/deeplink
与index.php
脚本相比没有区别于:
https://baseurl/
不确定您是如何在服务器上读取片段的。