Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 重写规则中有多行还是多个匹配项?_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Apache 重写规则中有多行还是多个匹配项?

Apache 重写规则中有多行还是多个匹配项?,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,假设我有很多重写工作要做: /苹果 /香蕉 /樱桃 需要重定向到 /水果/苹果 /水果/香蕉 /水果/樱桃 依此类推,再加上相同的蔬菜列表to/veg/蔬菜名称,蛋糕to/cake/蛋糕名称 您会在每行上执行重定向,还是将它们包装成一条长规则: /(apples|bananas|cherries) 到 这两种方法都存在性能问题吗 只有在以下情况下,我才会使用单一规则: 1.我相信{苹果、香蕉、樱桃}的选择是有限的 2.我相信输入不会超过此选项限制,或者如果超过此限制,则会有一个良好的

假设我有很多重写工作要做:

  • /苹果
  • /香蕉
  • /樱桃
需要重定向到

  • /水果/苹果
  • /水果/香蕉
  • /水果/樱桃
依此类推,再加上相同的蔬菜列表to/veg/蔬菜名称,蛋糕to/cake/蛋糕名称

您会在每行上执行重定向,还是将它们包装成一条长规则:

/(apples|bananas|cherries) 


这两种方法都存在性能问题吗

只有在以下情况下,我才会使用单一规则: 1.我相信{苹果、香蕉、樱桃}的选择是有限的 2.我相信输入不会超过此选项限制,或者如果超过此限制,则会有一个良好的异常处理机制(即,如果用户发送不在列表中的/papaya请求,该怎么办)

如果列表经常更新,或者列表很大,我宁愿使用重写映射。这还允许我使用映射的默认值定义一个公共异常处理。此外,一张地图可以满足所有水果、蔬菜、汽车等的需求

从性能的角度来看,带有OR'd条件的单个规则比带有一个条件的多个规则更为优化


重写映射的优化程度将低于重写规则,但在某个时候,我会开始将可读性和可维护性置于性能之上。

谢谢。我没有考虑过重写地图。记录在案,这个特定的url类型很少改变,新的也不重要,它们直接进入/fruits/papaya目录——我只是试图保留旧url中的google juice;要么你必须有一个详尽的水果(或蔬菜)列表来绘制,要么希望用户不要尝试新的水果(或蔬菜)。这只是一个例子。实际内容要比列出所有可能的水果和蔬菜要简单得多!
/fruit/$1