像规则一样将QUERY_STRING传递给RedirectMatch

时间:2019-04-26 18:11:50

标签: apache mod-rewrite

需要创建一个mod_rewrite规则以提供SEO友好的api。

类似:

https://server.app/api/Toronto/parks/

必须返回以下输出:

https://server.app/cgi-bin/api.cgi?domain=Toronto&script=parks.cgi

背景

RedirectMatch可以正常工作,但是我松开了查询字符串变量。 并且不需要重定向到丑陋的URL。

我尝试RewriteRule失败。抛出404未找到。

注意:

  • DocumentRoot:/var/www/html
  • 目录/var/www/html/api/api的别名/ ScriptAlias不存在。

尝试1

RedirectMatch "^/api/(.*)/(.*)/" "/cgi-bin/api.cgi?domain=$1&script=$2.cgi"

URL中缺少查询字符串变量,例如:

https://server.app/api/Toronto/parks/?other=value

尝试2

RewriteRule "^/api/(.*)/(.*)/" "/cgi-bin/api.cgi?domain=$1&script=$2.cgi" [QSA]

未找到错误404。

预期结果

致电:

https://server.app/api/Toronto/parks/?other=value

必须像这样工作:

https://server.app/cgi-bin/api.cgi?domain=Toronto&script=parks.cgi&other=value

0 个答案:

没有答案