我在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=1
,city=2
,product=3
我该如何实现这一功能?
答案 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]