我试图使用mod_rewrite,并以某种方式转发 – 最好通过头 – 原始URI到我的应用程序服务器。
我真正坚持的是如何从客户端接收redirect到应用程序服务器后发送的信息。
我唯一的方法是传递一个获取请求与原始的URI,但这似乎是丑陋的。
注意 – 我已经在Apache中检查了redirect,更改URL或将HTTPredirect到HTTPS – 你想知道关于Mod_Rewrite规则的所有内容,但是不敢问及疯狂高级Mod_Rewritedebugging教程
我可能忽视了一些东西; 如果是这样,请给我正确的期限,并作为副本closures。 🙂
编辑:
mod_rewrite正在使用302redirect到应用程序服务器。 实际的redirect是客户端。 一些域匹配,其他域不匹配。 我的规则的基本语法如下所示。
RewriteCond %{HTTP_HOST} mydomain|myalias RewriteRule ^ http://www.mydomain.org... [R=301,L]
在重写规则的开始处,将URI保存到variables中。 我会把它叫做ORIGINAL_URI。
RewriteRule (.*) - [E=ORIGINAL_URI:$1]
Apache是否直接将此请求传递给应用程序服务器? 如果是这样,请将自定义标题设置为该variables的值,我将称其为Original-URI。
RequestHeader set "Original-URI" "%{ORIGINAL_URI}e"
Apache是否将redirect发送回客户端,然后发出新的请求? 只要域保持不变,就可以告诉客户设置一个cookie。
Header set Set-Cookie "Original-URI=%{ORIGINAL_URI}e"