我试图将带有多个查询字符串参数的网址放入文件夹结构网址,并收到500内部服务器错误。
我的传入网址如下
www.fivestarprofessional.com/ag?PY=16&PF=wm&MKT=Delaware
我的目标网址我需要写为
delaware.fivestarprofessional.com/16/wm/index.html
我创建了3个RewriteCond
语句来捕获参数,创建了一个RewriteRule来创建输出
RewriteCond %{QUERY_STRING} !^(PY=.*)$ [NC]
RewriteCond %{QUERY_STRING} !^(PF=.*)$ [NC]
RewriteCond %{QUERY_STRING} !^(MKT=.*)$ [NC]
RewriteRule %3.fivestarprofessional.com/%1/%2/index.html
非常感谢任何协助。
答案 0 :(得分:2)
您可以将此规则用于重定向:
RewriteCond %{QUERY_STRING} (?:^|&)PY=([^&]+) [NC]
RewriteCond %1::%{QUERY_STRING} (.*?)::(?:|.*&)PF=([^&]+) [NC]
RewriteCond %1/%2::%{QUERY_STRING} (.*?)::(?:|.*&)MKT=([^&]+)
RewriteRule ^ag/?$ http://%2.fivestarprofessional.com/%1/index.html? [L,NC,NE,R=302]
仅使用相同的%
从最近的条件中捕获 %{QUERY_STRING}
个变量
答案 1 :(得分:0)
试试这个:
count = 0;
while(count < n)
{
x1 = gasdev(&idum);
x2 = gasdev(&idum);
z = sqrt(1-p*p)*x1 + p*x2 + mu;
z_p= x2 + mu_plus;
if (z > 2.17 || z<-2.17)
{
Z[count]=z;
Z_plus[count]=z_p;
printf("%d %lf\n",count, Z[count]);
count++;
}
}
以下问题已得到纠正:
RewriteCond "%{QUERY_STRING}" "^PY=([^&]+).*&PF=([^&]+).*&MKT=([^&]+)" [NC]
RewriteRule "www.fivestarprofessional.com/ag" "%3.fivestarprofessional.com/%1/%2/index.html"
需要3个参数而不是2个。
RewriteRule
的参数未用引号括起来。
RewriteCond
规则的反向引用......
RewriteCond
锚点,^
前缀)推荐阅读是apache httpd documentation的正确部分。
现有的解决方案假设......
查询字符串以url参数!
网址参数PY
,PY
,PF
在查询字符串中的显示顺序是固定的。