【问题标题】:How to redirect to Tomcat depending on _escaped_fragment_ in the URL?如何根据 URL 中的 _escaped_fragment_ 重定向到 Tomcat?
【发布时间】:2013-09-28 10:23:16
【问题描述】:
作为尝试使 AJAX 网站可抓取的一部分,我希望将包含“_escaped_fragment_”的 URL 重定向到 Tomcat。
我目前让 Apache 为根资源“/”提供服务,但如果请求资源“/?_escaped_fragment_=”,那么它应该将请求重定向到 Tomcat,以便爬虫 servlet 可以为它提供服务。
在我看来你不能在 mod_jk.conf 中这样做
【问题讨论】:
标签:
java
apache
tomcat
web-crawler
mod-jk
【解决方案1】:
您可以使用 Apache 重写规则将 URL 转换为更容易使用 mod_jk 转发到 Tomcat 的格式:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(_escaped_fragment_=.*)
RewriteRule ^/$ /crawler/?%1 [L,R=permanent]
上述规则仅适用于查询字符串以_escaped_fragment_= 开头并且会转换此 URL:
http://host/?_escaped_fragment_=home
进入这个:
http://host/crawler/?_escaped_fragment_=home
然后您可以使用通常的 JkMount 指令将 /crawler 转发到 Tomcat,例如:
JkMount /crawler* ajp13_worker