0

我的 .htaccess 看起来像这样:

    #01
RewriteRule ^([a-z]+)/yule/*$ index.php?city=$1&category=2

RewriteRule ^([a-z]+)/yule/today/*$ index.php?city=$1&category=2&today=true
RewriteRule ^([a-z]+)/yule/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=2&today=true&order=$2&ordertype=$3
RewriteRule ^([a-z]+)/yule/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=2&order=$2&ordertype=$3

RewriteRule ^([a-z]+)/yule_([0-9]+)-([0-9]+)?/*$ index.php?city=$1&category=2&price_sta=$2&price_end=$3
RewriteRule ^([a-z]+)/yule_([0-9]+)-([0-9]+)?/today/*$ index.php?city=$1&category=2&price_sta=$2&price_end=$3&today=true
RewriteRule ^([a-z]+)/yule_([0-9]+)-([0-9]+)?/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=2&price_sta=$2&price_end=$3&today=true&order=$4&ordertype=$5
RewriteRule ^([a-z]+)/yule_([0-9]+)-([0-9]+)?/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=2&price_sta=$2&price_end=$3&order=$4&ordertype=$5

#02
RewriteRule ^([a-z]+)/travel/*$ index.php?city=$1&category=3

RewriteRule ^([a-z]+)/travel/today/*$ index.php?city=$1&category=3&today=true
RewriteRule ^([a-z]+)/travel/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=3&today=true&order=$2&ordertype=$3
RewriteRule ^([a-z]+)/travel/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=3&order=$2&ordertype=$3

RewriteRule ^([a-z]+)/travel_([0-9]+)-([0-9]+)?/*$ index.php?city=$1&category=3&price_sta=$2&price_end=$3
RewriteRule ^([a-z]+)/travel_([0-9]+)-([0-9]+)?/today/*$ index.php?city=$1&category=3&price_sta=$2&price_end=$3&today=true
RewriteRule ^([a-z]+)/travel_([0-9]+)-([0-9]+)?/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=3&price_sta=$2&price_end=$3&today=true&order=$4&ordertype=$5
RewriteRule ^([a-z]+)/travel_([0-9]+)-([0-9]+)?/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=3&price_sta=$2&price_end=$3&order=$4&ordertype=$5

#03
RewriteRule ^([a-z]+)/service/*$ index.php?city=$1&category=4

RewriteRule ^([a-z]+)/service/today/*$ index.php?city=$1&category=4&today=true
RewriteRule ^([a-z]+)/service/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=4&today=true&order=$2&ordertype=$3
RewriteRule ^([a-z]+)/service/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=4&order=$2&ordertype=$3

RewriteRule ^([a-z]+)/service_([0-9]+)-([0-9]+)?/*$ index.php?city=$1&category=4&price_sta=$2&price_end=$3
RewriteRule ^([a-z]+)/service_([0-9]+)-([0-9]+)?/today/*$ index.php?city=$1&category=4&price_sta=$2&price_end=$3&today=true
RewriteRule ^([a-z]+)/service_([0-9]+)-([0-9]+)?/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=4&price_sta=$2&price_end=$3&today=true&order=$4&ordertype=$5
RewriteRule ^([a-z]+)/service_([0-9]+)-([0-9]+)?/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=4&price_sta=$2&price_end=$3&order=$4&ordertype=$5

#04
RewriteRule ^([a-z]+)/gou/*$ index.php?city=$1&category=5

RewriteRule ^([a-z]+)/gou/today/*$ index.php?city=$1&category=5&today=true
RewriteRule ^([a-z]+)/gou/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=5&today=true&order=$2&ordertype=$3
RewriteRule ^([a-z]+)/gou/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=5&order=$2&ordertype=$3

RewriteRule ^([a-z]+)/gou_([0-9]+)-([0-9]+)?/*$ index.php?city=$1&category=5&price_sta=$2&price_end=$3
RewriteRule ^([a-z]+)/gou_([0-9]+)-([0-9]+)?/today/*$ index.php?city=$1&category=5&price_sta=$2&price_end=$3&today=true
RewriteRule ^([a-z]+)/gou_([0-9]+)-([0-9]+)?/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=5&price_sta=$2&price_end=$3&today=true&order=$4&ordertype=$5
RewriteRule ^([a-z]+)/gou_([0-9]+)-([0-9]+)?/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=5&price_sta=$2&price_end=$3&order=$4&ordertype=$5

#05
RewriteRule ^([a-z]+)/qita/*$ index.php?city=$1&category=6

RewriteRule ^([a-z]+)/qita/today/*$ index.php?city=$1&category=6&today=true
RewriteRule ^([a-z]+)/qita/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=6&today=true&order=$2&ordertype=$3
RewriteRule ^([a-z]+)/qita/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=6&order=$2&ordertype=$3

RewriteRule ^([a-z]+)/qita_([0-9]+)-([0-9]+)?/*$ index.php?city=$1&category=6&price_sta=$2&price_end=$3
RewriteRule ^([a-z]+)/qita_([0-9]+)-([0-9]+)?/today/*$ index.php?city=$1&category=6&price_sta=$2&price_end=$3&today=true
RewriteRule ^([a-z]+)/qita_([0-9]+)-([0-9]+)?/today/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=6&price_sta=$2&price_end=$3&today=true&order=$4&ordertype=$5
RewriteRule ^([a-z]+)/qita_([0-9]+)-([0-9]+)?/(price|rebate|bought)_(desc|asc)/ index.php?city=$1&category=6&price_sta=$2&price_end=$3&order=$4&ordertype=$5

#06
#07
#08
... ...

我有很多分类,比如:'yule','travel','service','gou','qita',~~~~很多分类~~~~~~这些分类对应id是这样的:'meishi ' -> category=1 'yule' ->category=2 '旅行' ->category=3 '服务'->category=4 'gou' ->category=5 'qita' ->category=6 ~~~~ ~~~ 如何使用 'RewriteCond' 简化这些类别?

4

1 回答 1

1

查看有关重写映射的文档:http ://httpd.apache.org/docs/current/rewrite/rewritemap.html

您的目标是通过文本文件将人类可读的类别标签映射到类别编号。

例如,如果您要输入/travel您的 URL,映射器将查询文本文件并返回3类别

所以,([a-z]+)/([a-z]+)会变成index.php?city=$1&category=${examplemap:$1|/404.php}. 例如,mycity/travel将成为index.php?city=mycity&category=3查找/映射之后。

然后,使用您的重写规则,您不需要为每个类别重复所有这些规则。

如果您对文档有困难,请告诉我,我会尽力为您整理一些内容。

于 2013-04-17T05:53:24.147 回答