作为Google抓取AJAX填充内容的方法的一部分,我在.htaccess文件中有以下内容:
RewriteEngine on
#snapshot requests
RewriteCond %{QUERY_STRING} _escaped_fragment_=([^&]+)
RewriteRule ^.*$ system/snapshot_mode.php?project=%1
我使用类似
的网址触发规则http://myserver.co.uk/?_escaped_fragment_=token
...但无法转到指定的页面。但确实,如果我删除重定向的查询字符串部分,即将其更改为
RewriteRule ^.*$ system/snapshot_mode.php
这是怎么回事?
[编辑]
我在规则中添加了[R-302]
,它现在尝试通过损坏的本地机器文件路径将我重定向到脚本BUT,即
http://localhost/C:/xampp/htdocs/docula/system/snapshot_mode.php?project=token
...并给我403拒绝访问错误。
答案 0 :(得分:0)
试试这个:
RewriteEngine on
RewriteCond %{QUERY_STRING} _escaped_fragment_=([^&]+)
RewriteRule ^.*$ system/snapshot_mode.php?project=%1 [L,QSA]
重写规则和查询字符串:
通过默认,RewriteRule
不会更改查询字符串。因此,RewriteRule中不需要QueryString。如果您没有向替换网址添加参数,RewriteRule
会传入传入的查询字符串。
如果要添加 new 参数,原始查询字符串将被丢弃,重写的URL将只获取新参数。
如果要合并原始查询字符串和新参数,可以使用Query String Append
[ QSA ]标记附加它。
在您的代码中,您有一个没有[QSA]标志的新参数project=%1
,因此_escaped_fragment_=([^&]+)
参数被丢弃,使 RewriteCond ition失败。
另请注意: