在我的CodeIgniter网站上,我想添加一个特定的重写规则,以便http://www.exemple.com/cache.manifest
将重写为
http://www.exemple.com/controller/manifest
(因为Safari 7似乎只接受ApplicationCache的.manifest文件)
所以我试着把这行添加到我的htaccess 中
RewriteRule ^cache.manifest$ controller/manifest
我在其他重写规则之前添加了它:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^cache.manifest$ controller/manifest
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
但它返回404。如果我把线路改成
RewriteRule ^cache.manifest$ test.html
它是有效的。因此,我的规则的第一部分是正确的。
如果我尝试直接访问www.example.com/controller/manifest,它可以访问,所以我的url是正确的。
我也试过
RewriteRule ^cache.manifest$ index.php/controller/manifest [L]
但它也不起作用…
有线索吗?
非常感谢
我在本地服务器上尝试了一些测试,我认为以下可能有效:
RewriteRule ^cache.manifest$ /index.php/controller/manifest [R,L]
我不完全确定您是否需要前导的"/"或"/index.php",所以您可能需要进行实验。
您需要[R]
标志来强制重定向。在这种情况下,您需要Apache在URL中查找字符串cache.manifest
,然后转到CI页controller/manifest
。
看来您需要明确设置重定向。
请告诉我这是否有效。祝你好运