将apache vhost配置为不处理"&引用;作为查询标记

将apache vhost配置为不处理"&引用;作为查询标记,apache,virtualhost,Apache,Virtualhost,我已经对我的ajax应用程序上的所有页面进行了快照,并且根据google规范[],我将这些文件存储在一个模式中,该模式被描述为“www.example.com/ajax.html?”\u转义\u fragment\u=mystate”。 在同一个目录中,有一个名为ajax.html的文件,该文件适用于本例,它是一个静态html页面。根本不涉及服务器端 当导航到www.example.com/ajax.html?\u expected\u fragment\u=mystate时,它包含与ajax.

我已经对我的ajax应用程序上的所有页面进行了快照,并且根据google规范[],我将这些文件存储在一个模式中,该模式被描述为“www.example.com/ajax.html?”\u转义\u fragment\u=mystate”。 在同一个目录中,有一个名为ajax.html的文件,该文件适用于本例,它是一个静态html页面。根本不涉及服务器端

当导航到www.example.com/ajax.html?\u expected\u fragment\u=mystate时,它包含与ajax.html不同的html内容,ajax.html使用curl、wget和google的“作为googlebot获取”工具显示在浏览器中

据我所知,问题是?http服务器[Apache2]的处理方式与浏览器的处理方式相同,即它被视为查询参数char

那么,我如何指示这个VHOST正确运行,并发送www.example.com/ajax.html?\u转义\u fragment\u=mystate文件


谢谢

您可以将所有片段保存在/fragments/(mystate)中,并使用apache模块mod_rewrite:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^ajax.html$ /fragments/%1
内容如下: 如果存在查询字符串“\u转义\u片段”,则获取该值,将其放入变量%1并继续。然后,如果url也是“ajax.html”,请将ajax.html重写为/fragments/%1