我想以 RedirectMatch 指令的形式重新创建 mod_rewrite 规则。
首先,请看一下这个 mod_rewrite 规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} (www.)?africananimals.com
RewriteCond %{REQUEST_URI} zebras
RewriteRule ^(stripes|hooves)/zebras/?$ zebras/$1 [R,L]
该规则(由非常有用且知识渊博的 StackOverflow 贡献者编写)告诉服务器转换这四个 URL:
http://africananimals.com/stripes/zebras
http://africananimals.com/hooves/zebras
http://www.africananimals.com/stripes/zebras
http://www.africananimals.com/hooves/zebras
——进入这些更好、更有逻辑的结构:
http://africananimals.com/zebras/stripes
http://africananimals.com/zebras/hooves
http://www.africananimals.com/zebras/stripes
http://www.africananimals.com/zebras/hooves
(这些不是实际的 URL,只是示例。)
该托管服务器上还有其他网站,它们可能恰好具有相同的目录结构,因此第一个条件确保规则仅适用于africananimals.com 域,无论是否带有www。
第二个条件确保仅当 URL 中出现单词“zebras”时才应用该规则。
规则本身选择“stripes”或“hooves”,后跟“/zebras”或“/zebras/”并重写 URL,将先前选择的项目(“stripes”或“hooves”)放在“zebras/”之后 –完全按照它应该做的那样做。
问题:如何使用 RedirectMatch 指令完成相同的任务?
作为一名 Apache 业余爱好者,我非常感谢专业人士的见解。