我想以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
(这些不是实际的网址,只是示例。)
该托管服务器上还有其他网站,可能恰好具有相同的目录结构,因此第一个条件确保规则仅适用于africananimals.com域,无论是否有www。
第二个条件确保仅在URL中出现“zebras”一词时才应用该规则。
规则本身选择“stripe”或“hooves”后跟“/ zebras”或“/ zebras /”并重写URL,将之前选择的项目(“条纹”或“蹄”)放在“斑马”之后/“ - 完全应该这样做。
问题:如何使用RedirectMatch指令完成相同的任务?
作为一名阿帕奇业余爱好者,我非常感谢专业人士的见解。
答案 0 :(得分:1)
我猜这样的事情会这样做:
RedirectMatch 301 ^/(stripes|hooves)/zebras/?$ http://africananimals.com/zebras/$1