htaccess以可选参数开头

时间:2019-09-06 05:52:20

标签: .htaccess

我需要在htaccess处有一个可选的起始参数

我需要触发的网址

/offers
/category1/offers
/category1/category2/offers

我已经在多语言站点中实现了以下方案

RewriteRule ^(en|de)/?(.*)/offers/?$ offers.php?lang=$1&url=$2 [L,NC,QSA]

以上规则触发以下网址

/en/offers
/en/category1/offers
/en/category1/category2/offers
/de/offers
/de/category1/offers
/de/category1/category2/offers

及其完美运行

现在我只有一个语言站点,并且语言参数不存在,并且实现了相同的情况

因此触发

/offers
/category1/offers  
/category1/category2/offers

我执行了以下不起作用的规则

RewriteRule ^(.*)/offers/?$ offers.php?url=$1 [L,NC,QSA]

我想这与规则中的开头有关,但我不知道如何解决

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

如果您想将2条规则保持不冲突,请使用:

RewriteRule ^(en|de)/(.+)/offers/?$ offers.php?lang=$1&url=$2 [L,NC,QSA]

RewriteRule ^(?:(.+)/)?offers/?$ offers.php?url=$1 [L,NC,QSA]