我们正在尝试从 http 请求标头中读取特定字符来确定需要转发的 URL 类型。
例如,Http 标头 - HTTP_ACCEPT=version.ver1+xml
在 Httpd.config 中,我们需要请求的版本值(如上例中的 - ver1),然后才能转发到特定的版本 URL,例如http://server:port/application_<ver1>
。
有没有办法通过 http 模块(如 rewrite 或 setenvif 等)进行配置。
答案1
您应该能够通过重写来实现这一点。例如:
RewriteEngine On
RewriteCond %{HTTP:Accept} version\.(ver1)\+xml [NC]
RewriteRule ^(.*) http://server:port/application_%1 [L]
当然,这可能需要根据您的要求进行更改。例如,如果您需要保留有关原始请求的任何内容,例如主机名或 URI。那么您可能需要使用变量和反向引用。例如:
RewriteRule ^(.*) http://%{HTTP_HOST}/application_%1$1 [L]
重写还需要在主配置中启用 mod_rewrite:
LoadModule rewrite_module modules/mod_rewrite.so
以下链接提供了有关这些指令的更多信息:
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond