打破查询字符串并检索值

时间:2015-11-30 14:08:21

标签: apache query-string httpd.conf

我在httpd-apache 2.2文件中使用类似的代码

<Location /local/*/*/*>
setHandler dispatcher-handler
RewriteEngine On
RewriteCond %{REQUEST_URI} ^.*.*.* [NC]
RewriteRule ^/?(.*)/(.*)/(.*)$ www.dns.com/product.html?state=$1&city=$2&product=$3 [R]
</Location>

当我在浏览器中提供URL- www.dns.com/local/1/2/3时 在日志中,查询中断如下:

state=opt/apache/httpserver/htdocs/local/1&city=2&product=3

如何对httpd文件进行编码,以便state必须仅使用1而不是采用完整的“文档根”路径和“本地”?

理想情况下,我想要state=1city=2product=3 我该如何实现这一功能?

1 个答案:

答案 0 :(得分:0)

问题是你的目标是从&#34; www.dns.com&#34;缺少协议部分&#34; http://&#34;作为标准编辑网址。您可以通过将其更改为

来轻松解决此问题
RewriteRule ^/?(.*)/(.*)/(.*)$ http://www.dns.com/product.html?state=$1&city=$2&product=$3 [R]

或使用像这样的当前主机相对路径:

RewriteRule ^/?(.*)/(.*)/(.*)$ /product.html?state=$1&city=$2&product=$3 [R]